【问题标题】:setting State without using setState in React.js在 React.js 中不使用 setState 设置状态
【发布时间】:2018-01-22 22:38:23
【问题描述】:

我在网上找到了一个关于 React.js 的教程,但我看到了导师在没有 setState() 函数的情况下更改状态的方式。我在这里问这是否是一个好习惯。

构造函数:

constructor(props) {
    super(props);
    this.state = {
      uid: uuid.v1(),
      name: '',
      answers: {
          answer1: '',
          answer2: '',
          answer3: ''
      },
      isSubmitted: false
    };
    this.onSubmit = this.onSubmit.bind(this);
    this.answerSelected = this.answerSelected.bind(this);
    this.questionSubmitted = this.questionSubmitted.bind(this);
}

他更新状态的方式是:-

answerSelected(event) {
    let answers = this.state.answers;
    if (event.target.name === 'answer1') {
        answers.answer1 = event.target.value;
    } else if (event.target.name === 'answer2') {
        answers.answer2 = event.target.value;
    } else if (event.target.name === 'answer3') {
        answers.answer3 = event.target.value;
    }
}

据我所知,React 应该使用setState({answers: {answer1: event.target.value}}) 设置状态。我对吗?有什么更好的方法?

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    React 组件内部的设置/更改状态总是应该使用 setState,这是 react 推荐的。唯一可以直接修改状态的地方是构造函数。阅读更多here

    也值得一读this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-19
      • 1970-01-01
      • 2017-01-21
      • 2018-12-15
      • 2021-03-28
      • 2019-07-26
      • 2018-09-23
      相关资源
      最近更新 更多