设置状态不起作用

时间:2017-08-15 18:03:06

标签: javascript reactjs ecmascript-6

我有一个设置我的状态的功能,但它无法正常工作。

这是我的功能,

checkAnswer() {
  this.setState({
    isDropdownShown: false
  });
}

我正在这样打电话,

renderAnswers(answer, idx) {
  return (
    <li
      key={idx}
      className={styles.questionDropdownItem}
      onClick={() => this.checkAnswer(answer)}
    >
      {answer.title}
    </li>
  );
}

来自他的评论:

我在渲染中调用renderAnswers方法,如下所示:

{question.answers.map(this.renderAnswers)}

我正在尝试像shouldComponentUpdate这样的所有内容,但它不起作用。

1 个答案:

答案 0 :(得分:1)

{question.answers.map(this.renderAnswers)}

应该是

{question.answers.map(this.renderAnswers, this)}

{question.answers.map((answer, i) => this.renderAnswers(answer, i))}

您的第一个示例将调用renderAnswers函数,但没有this值,因为。map has no way to know what这是您想要的。