ComponentDidUpdate 和 SetState 回调函数的区别
Difference between ComponentDidUpdate and SetState callback function
我对我的 React 本机应用程序中遇到的一个错误做了一些研究
Warning: An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback..
我已经研究过了,但我仍然无法理解它们之间的区别。我的理论想法是从对象数组中删除一个元素,但是当我将 setState 与回调函数一起使用时,我得到了错误。任何人都可以指出正确的方向或向我展示如何使用 componentDidUpdate
的示例。下面的代码示例目前有效,但我觉得它可以改进,我相信这就是我收到错误的原因
Delete_Task = (e) => {
this.setState(prevState => {
const tasks = prevState.daily.filter(task => task.ID !== e);
this.setState({daily: tasks});
})
}
您需要return新的状态对象,而不是在外部 setState 回调中调用另一个 setState
改变
this.setState({daily: tasks});
到
return {daily: tasks};
// OR
return {...prevState, daily:tasks}
我对我的 React 本机应用程序中遇到的一个错误做了一些研究
Warning: An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback..
我已经研究过了,但我仍然无法理解它们之间的区别。我的理论想法是从对象数组中删除一个元素,但是当我将 setState 与回调函数一起使用时,我得到了错误。任何人都可以指出正确的方向或向我展示如何使用 componentDidUpdate
的示例。下面的代码示例目前有效,但我觉得它可以改进,我相信这就是我收到错误的原因
Delete_Task = (e) => {
this.setState(prevState => {
const tasks = prevState.daily.filter(task => task.ID !== e);
this.setState({daily: tasks});
})
}
您需要return新的状态对象,而不是在外部 setState 回调中调用另一个 setState
改变
this.setState({daily: tasks});
到
return {daily: tasks};
// OR
return {...prevState, daily:tasks}