已解决:React Redux的useSelector不会在expo react-native上更新存储状态

时间:2020-06-06 18:52:08

标签: react-native redux react-redux expo hook

我在网络上建立了相同的模型,并且可以正常工作,我尝试使用Redux的shallowEqual作为useSelector函数的第二个参数,还使用了Hooks部分的Redux文档中的lodash库的_.isEqual,但是没有工作。

预期的行为:
在分派操作上,具有useSelector的组件必须带入更新状态。

会发生什么:
这些组件会带来初始状态的经验。

版本:

"Expo": "~37.0.3"
"react-native": "37.0.1",
"react-redux": "^7.2.0",
"redux": "^4.0.5"

已编辑:

我试图重现类似于零食的结构,该零食也重现了相同的问题,这里是链接:https://snack.expo.io/@danieltfischer/useselector

已解决: 我忘记了动作类型的“导出”:export const ADD_MED ='ADD_MED' 我专注于代码,却没有意识到我没有公开动作的类型。再次感谢。

1 个答案:

答案 0 :(得分:1)

我查看了您的代码,发现了一个错误。

您没有从actions文件夹中导出操作类型字符串常量:

// What you are doing
const CREATE_MED = 'CREATE_MED';

// What you need to be doing
export const CREATE_MED = 'CREATE_MED';

修复此问题后,该应用程序便开始运行,一旦我分派动作,它就会为我带回最新状态并更新单位列表。

尝试进行此更改,看看是否可以解决。

之所以不起作用,是因为每次调用reducer函数的CREATE_MED操作常量都是未定义的,因此它总是使用默认选项,该选项返回了先前的状态。