This.props.history не определен, если вызывается из дочернего компонента

Я пытаюсь проверить ответы внутри родительского компонента. Функция validateAnswer запускается и работает почти так, как должна.

Но я хочу изменить сайт, если он был проверен. Поэтому я вызываю this.props.history.push из родителя. И это дает мне ошибку, потому что история не определена.

<Answers handleClick={e => this.validateAnswer(e)} />

//Function to validate the Answer in the parent
    validateAnswer = (event) => {
    if (true) {
      //navigate to /email
      this.props.history.push({
        pathname: '/email',
        state: { lastPage: 'question' },
      });

    //Child component
         <Button
          name="1"
          label="Afrika"
          handleClick={props.handleClick}
        />

Как я могу это исправить? Должен ли я проверять ответ непосредственно в компоненте «Ответ»?


person Fabio ha    schedule 09.03.2018    source источник
comment
Что возвращает регистрация this в вашей функции validateAnswer()?   -  person Stretch0    schedule 09.03.2018
comment
Вы пробовали использовать withRouter HoC?   -  person Jayasagar    schedule 19.06.2018


Ответы (1)


Попробуй это:

<Answers handleClick={this.validateAnswer} />

// Function to validate the Answer in the parent
validateAnswer(event){
if (true) {
  //navigate to /email
  this.props.history.push({
    pathname: '/email',
    state: { lastPage: 'question' },
  });

// Child component
 <Button
  name="1"
  label="Afrika"
  handleClick={(e) => props.handleClick(e) }
/>
person Stretch0    schedule 09.03.2018
comment
Я пробовал так, но все равно получил ту же ошибку. - person Fabio ha; 09.03.2018