Javascript Redux不会立即更新状态

Javascript Redux不会立即更新状态,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我对Redux有问题,更可能不是问题而是误解。 如果我在函数中进行分派并在存储中写入一个新值,那么我无法立即从存储中获取一个新值 例如: 实例: 我怀疑这与异步有关,因为如果我在setTimeout中包装状态,就会出现新状态 我很高兴听到您对为什么以及如何编写值的解释​​无论是您还是Redux更新,都要立即从存储中读取它们。 正如你所说,这是一个误解。当您直接更新时,您可以提供要执行的回调,例如 setState({ foo }, () => somethingWith(this.sta

我对Redux有问题,更可能不是问题而是误解。 如果我在函数中进行分派并在存储中写入一个新值,那么我无法立即从存储中获取一个新值

例如:

实例:

我怀疑这与异步有关,因为如果我在setTimeout中包装状态,就会出现新状态


我很高兴听到您对为什么以及如何编写值的解释​​无论是您还是Redux更新,都要立即从存储中读取它们。

正如你所说,这是一个误解。当您直接更新时,您可以提供要执行的回调,例如

setState({ foo }, () => somethingWith(this.state));
注意,组件在回调之前已重新呈现


如果您有需要在外部状态更新(例如Redux)后运行的逻辑,那么就有componentDidUpdate,但它也可能表明存在架构问题。

我很高兴听到关于为什么以及如何编写值的解释​​去商店,并立即从中阅读。听起来很像。通常可以使用componentDidUpdate方法获取新值。我认为组件本地状态和redux全局状态是不同的,当我使用redux时,它与setState组件本地状态不相交。我认为使用异步setState只使用redux处理状态不会出现问题。我认为广义redux也不是同步的,例如,状态更新可能是批处理的、重新排序的,等等。
setState({ foo }, () => somethingWith(this.state));