1

有一个 DeliveryManifestView 组件。它运行一个分派 thunk 的效果。

useEffect - 获取数据

thunk 从 api 获取数据,然后用normalizr.

normalizedData传递给由 创建的动作redux-toolkit

获取数据,规范化,并传递给reducer

并且reducer返回实体的新对象。

返回实体

它在第一次运行时完美运行。但是,如果我去另一个视图然后回来

效果重新运行,thunk 被调度,

数据来自api,

数据再次传递给reducer,reducer返回新数据,

但状态没有变化,我仍然得到旧状态。

这是来自 redux devtools 的操作差异

这是第一次渲染 第一次运行

返回另一个视图并返回后

此处未更改数据

数据缩减器中没有差异,即使新数据来自 api。

4

2 回答 2

0

问题是,当 normalizr 获得一个空数组时,它返回一个undefined,因此 reducerundefined也返回,导致没有任何变化。这是我想出的解决方案

在此处输入图像描述

deliveryPackages.

于 2021-02-10T08:02:22.137 回答
0

啊 - 我有同样的问题,但结果我只是很傻......

就我而言,它是调试器。不知道我是怎么做到的,但它专注于状态的一个特定部分,所以我的变化正在发生,但没有显示在差异中。(我使用 React Native 调试器)

正如我所说 - 无法弄清楚我是如何打开它的,但我通过单击Diff显示的其他减速器的名称将其删除: 在此处输入图像描述

于 2021-02-09T11:23:26.637 回答