使用调度时,无法知道何时更新状态

时间:2017-01-02 05:48:08

标签: reactjs redux

在React中,当我调用setState时,它有一个回调来通知我已经设置了状态。但是当我使用Redux时,我使用dispatch来改变状态,但我怎么知道状态是否已经更新。

例如:

"Ltest,Ltest "

第二行依赖于第一行,但我们都知道setState不是同步操作,我怎样才能在Redux中处理这个问题?

2 个答案:

答案 0 :(得分:1)

使用redux-thunk模块,您可以从调度的操作返回Promise。对这些动作进行调度(...)将神奇地返回Promises,这样你就可以。(#)对它们进行操作。

另一方面,如果你的动作是同步的,那么setTimeout(...,0)就可以了。

虽然在你的例子中我认为第二个调度应该是一个简单的setState,只要没有外部依赖它,在这种情况下它不应该是本地状态,而是一个组合的动作,它在你的两个行动中执行同时。 redux-thunk也有帮助。

答案 1 :(得分:0)

如果使用mapStateToProps将变量从redux存储区传递给组件作为prop,则可以在组件的render方法中执行 console.log(this.props.variableName) 。只要在商店中更新该变量,就会调用render方法。