【发布时间】:2019-07-16 14:12:05
【问题描述】:
问题是,我使用 setState 来更新 state.n 和 state.data。我想使用处理程序调用 setState onClick。调用 setState 后,我执行回调 console.log 来观察状态属性的变化,但只有 state.data 发生了变化,而 state.n 没有变化。
handler(e) {
this.setState((state) => {
let arr = state.data;
arr.push(fakeTableData[state.n+1]);
this.setState({n: state.n+1, data: arr});
}, console.log.bind(null, this.state.n));
}
使用一个处理程序后,我希望看到 state.n 增加,但我只更改了 state.data,而不是 state.n。我收到一条警告,如下所示:“警告:从更新函数内部安排了更新(setState、replaceState 或 forceUpdate)。更新函数应该是纯函数,副作用为零。考虑使用 componentDidUpdate 或回调。”我已经阅读了主要反应站点上的教程,但没有足够的信息。
【问题讨论】:
-
最后一行应该是 console.log.bind(this, this.state.n)
标签: javascript reactjs