我正在学习React和Redux,我正在做一个基本的ToDo列表。
我遇到dispatch
的问题。
我将componentDidUpdate = () => {
if (this.props.todoDelted) {
this.refreshTodoList()
}
}
上的一行删除为redux操作,然后在componentDidUpdate中等待更改道具,如:
props
问题是,还有另一个todoDelted
正在更新,prevProps
是第一个更新。当我与undefined
进行比较时,todoDeleted总是this.refreshTodoList()
,因为它只更新了一次。
如何只运行一次#render()
,而不是每次更新道具?
答案 0 :(得分:0)
实际上没有必要使用componentDidUpdate
方法。
dispatch
方法返回Promise,因此您可以编写如下内容:
this.props.dispatch(someAction(payload)).then(this.refreshTodoList);
您的功能只会被调用一次。