Reducer 状态未使用新对象更新 [redux, redux-toolkit, normalize]
Reducer state is not being updated with the new object [redux, redux-toolkit, normalize]
有一个 DeliveryManifestView 组件。它 运行 是一个发送 thunk 的效果。
thunk从api获取数据,然后用normalizr
归一化。
normalizedData
被传递给 redux-toolkit
创建的动作。
和reducer returns实体的新对象。
它在第一个 运行 上完美运行。但是,如果我转到另一个视图然后回来
效果重新运行s,thunk被调度,
数据来自api、
数据再次传递给reducer,reducer returns新数据,
但状态没有发生变化,我仍然得到旧状态。
这是来自 redux devtools 的操作差异
这是第一次渲染
回到另一个视图并返回后
data reducer 没有差异,即使新数据来自 api。
啊 - 我遇到了同样的问题,但事实证明我只是在犯傻...
在我的例子中,它是调试器。不知道我是怎么做到的,但它集中在状态的一个特定部分,所以我的变化正在发生但没有显示在差异中。 (我使用的是 React Native 调试器)
正如我所说 - 终究无法弄清楚我是如何打开它的,但我通过单击 Diff[= 显示在此处的其他减速器的名称将其删除18=]:
问题是,当 normalizr 得到一个空数组时,它 returns 一个 undefined
,因此 reducer 也返回 undefined
,导致没有任何变化。这是我想出的解决方案
为 deliveryPackages
赋予默认值。
有一个 DeliveryManifestView 组件。它 运行 是一个发送 thunk 的效果。
thunk从api获取数据,然后用normalizr
归一化。
normalizedData
被传递给 redux-toolkit
创建的动作。
和reducer returns实体的新对象。
它在第一个 运行 上完美运行。但是,如果我转到另一个视图然后回来
效果重新运行s,thunk被调度,
数据来自api、
数据再次传递给reducer,reducer returns新数据,
但状态没有发生变化,我仍然得到旧状态。
这是来自 redux devtools 的操作差异
这是第一次渲染
回到另一个视图并返回后
data reducer 没有差异,即使新数据来自 api。
啊 - 我遇到了同样的问题,但事实证明我只是在犯傻...
在我的例子中,它是调试器。不知道我是怎么做到的,但它集中在状态的一个特定部分,所以我的变化正在发生但没有显示在差异中。 (我使用的是 React Native 调试器)
正如我所说 - 终究无法弄清楚我是如何打开它的,但我通过单击 Diff[= 显示在此处的其他减速器的名称将其删除18=]:
问题是,当 normalizr 得到一个空数组时,它 returns 一个 undefined
,因此 reducer 也返回 undefined
,导致没有任何变化。这是我想出的解决方案
为 deliveryPackages
赋予默认值。