Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我们可以在react应用程序中同步访问已更改的减速器状态吗?_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript 我们可以在react应用程序中同步访问已更改的减速器状态吗?

Javascript 我们可以在react应用程序中同步访问已更改的减速器状态吗?,javascript,reactjs,redux,Javascript,Reactjs,Redux,我已经发送了一个操作,它不包含任何异步代码,例如ajax调用或任何更改reducer状态的代码。我可以在react应用程序的下一行中访问已更改的减速器状态吗 反应应用程序 actions.setName('Test'); //this sets the name in state of reducer to Test //Can I access the name in the next line const name = this.props.name; 这是我的示例代码,它是有效的。也许它

我已经发送了一个操作,它不包含任何异步代码,例如ajax调用或任何更改reducer状态的代码。我可以在react应用程序的下一行中访问已更改的减速器状态吗

反应应用程序

actions.setName('Test'); //this sets the name in state of reducer to Test
//Can I access the name in the next line
const name = this.props.name;

这是我的示例代码,它是有效的。也许它能帮助你。wait关键字对我很有效。

刚刚发现,我们无法立即更新状态并在下一行中作为道具使用

获取更新状态的唯一方法是组件重新渲染时。您不能期望下一行在任何时候都具有最新状态

查看此讨论,以进一步了解如何着手解决此问题


Redux存储的状态本身会立即更新,因为调度是同步的。但是,React的重新呈现几乎始终是异步的,因此,在调度操作后,无法立即使用道具更新。

这里使用wait显式地使代码的响应行同步。但我在概念上要问的是——reducer状态是否会改变,新状态是否会在到达下一行时可用,而无需任何这些承诺/等待是的,因为redux功能是同步的。这里我的appAction.processList是一个网络请求,这就是为什么需要等待的原因。分派函数是不同步的。也许这有助于你理解
let response = await this.props.appAction.processList(token, userName);
prodArray = this.props.processList;