为什么获取不到Redux初始值?记录第一次使用Redux碰到的问题(已解决)

683 阅读1分钟

本人是小菜鸡一枚

这次想使用redux再做一遍todo-list,之前做的是用state做的,这次想用一下redux

在使用中遇到了问题,我想获取初始状态来渲染List列表,但是获取到的state是undefined,但是执行了dispatch又获取到了更新后的state,如下图

image.png 于是我检查了我的Provider

image.png 也没有问题,问题出在哪了呢?看看我的reducer

image.png 在 Redux 中,当应用程序初始化时,Redux store 的 state 会被设置为 reducer 函数的默认值,这个默认值是通过调用 reducer 来生成的。也就是说它会自己执行一次reducer函数来获取初始state,即reducer的返回值。在我执行dispatch的时候,reducer的返回值将我的初始state添加到了state中,我的理解是reducer的第一个参数state是上一次reducer执行的返回值,如果上一次没有返回值,则本次的第一个参数state为上一次reducer的state。

image.png

image.png 所以看出来为什么我在ShowItems组件中获取不到我的初始state了吗?没错,因为我没有设置返回值,所以导致没有初始state,加上return就解决问题啦,如下图

image.png 以上就是我碰到的问题了,感谢大家阅读,如果有误,请指正~~