我的反应组件中有以下代码:
requests
所以,每当有人按下“提交”字样时,按钮,执行某个功能,然后我的输入字段的状态使用在' myReducer'中更改的相应值进行更新。
然而,有一个问题。 ' doFunction'是一个异步操作,这意味着之后直接设置状态不会导致更新,因为当该函数在之后设置时,该状态将不会被该函数更改。
我如何在react / redux中处理这样的事情?
答案 0 :(得分:2)
这与doSomething()
的性质有关。应始终通知您该功能已完成。在99%的情况下,这是一个Ajax调用,在大多数库中,它返回一个承诺:
this.props.doSomething()
.then(() =>
this.setState({
inputField: this.props.myReducer.someValue
});
如果doSomething()
未返回承诺,您可能应该对其进行编辑或对其进行扩充,以便它确实返回承诺。如果需要回调,您可以这样做:
new Promise(this.props.doSomething)
.then(() =>
this.setState({
inputField: this.props.myReducer.someValue
});