我在网络上建立了相同的模型,并且可以正常工作,我尝试使用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'
我专注于代码,却没有意识到我没有公开动作的类型。再次感谢。
答案 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
操作常量都是未定义的,因此它总是使用默认选项,该选项返回了先前的状态。