React Redux 的 useSelector 不更新 expo react-native 上的商店状态

useSelector of React Redux don't update state of store on expo react-native

我在网上制作了相同的模型并且它有效,我尝试使用 Redux 的 shallowEqual 作为 useSelector 函数的第二个参数,还有 lodash 库的 _.isEqual ,如 Hooks 部分中的 Redux 文档但没有用。

预期行为:
在调度操作中,具有 useSelector 的组件必须带来更新后的状态。

会发生什么:
组件带来初始状态空虚。

版本:

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

已编辑:

我尝试重现了类似也重现同样问题的小吃的结构,这里是link:https://snack.expo.io/@danieltfischer/useselector

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

您没有从 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 操作常量是未定义的,所以它总是转到返回先前状态的默认选项。