问题标签 [normalizr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
396 浏览

javascript - 处理标准化响应的最佳方法是什么?

我正在使用 normalizr 来规范化响应。

我的问题是我不知道如何管理标准化响应。

我想将单词传递给带有定义的反应组件。如何检索具有嵌套定义的单词并将其呈现给我的组件。

0 投票
0 回答
865 浏览

normalizr - 如何将一组平面对象标准化为其实体?

给定一个如下所示的输入:

以及所需的输出:

我不确定如何为我的 4 种实体类型定义模式,这些实体类型会将多个字段从展平的根对象中拉出并重命名它们。我看到有一个assignEntity我可以传递的论点,我认为我会使用它来重命名部分,但我不确定如何定义 aSchema来表示一个平面对象变成四个实体。

0 投票
1 回答
195 浏览

javascript - Normalizr 不处理信封中的数据

我正在使用 normalizr 处理从 Api 收到的数据。当我收到列表时,我得到了预期的标准化实体。

但是当我发送更新一个实体的请求时,我只收到一个包裹在数据信封中的实体,而 normalizr 没有正确处理。

我收到如下数据,列表中只有一名玩家:

我应该更改什么以将播放器检索为规范化实体?

更新:

Api 调用示例。

0 投票
1 回答
773 浏览

redux - Normalizr 为单个实体创建结果

我正在使用 Normalizr 从不同的 API 端点获得相同的响应形状。

然后我想处理标准化的反应,不管它是怎么来的。

但问题是,对于我得到的单个项目result: 1而不是数组result: [1],它会在我以后的代码中引起一些问题。

现在我必须result手动标准化为数组,但也许有更好的方法来做到这一点?

0 投票
2 回答
4064 浏览

reactjs - 我为什么要保持状态平坦

我正在将 ReactJs 与 Redux 一起使用,在一些教程和代码中,我看到人们建议并使用 normalizr 来保持状态平坦。但是保持它平坦的真正优势是什么?如果我不这样做,我会遇到任何问题吗?有必要吗 ?

0 投票
0 回答
508 浏览

redux - Normalizr 和服务器生成的 ID

normalizr用来组织我的redux-store 状态。

假设我已经标准化了待办事项列表:

然后我想实施addTodo行动。我需要在 todo 对象中有一个 id,所以我生成一个随机的:

但问题是最终所有数据都将保存到服务器,并且生成的 id 应该替换为真实的服务器分配的 id。现在我像这样合并它们:

这似乎是一个可行的解决方案,但也有很多开销。你知道有什么方法可以简化这个并且不进行REPLACE_TODO操作吗?

0 投票
1 回答
885 浏览

redux - 构建 redux、redux-saga 和 normalizr

所以我想使用这三种技术。我的想法是在 normalizr 的帮助下拥有一个处理我所有实体的减速器。

redux-saga 将监听ENTITIES_REQUESTED动作,运行一个请求实体的 saga,并执行一个ENTITIES_RECEIVED动作,该动作将由调用 normalizr 并将实体存储在entities切片中的 reducer 处理。

为了删除一个实体,有两件事必须发生:必须从状态中删除实体,并且必须发生副作用,它将从服务器中删除实体(旁白:我知道有些人会声称从状态中删除也是一个副作用,但我认为 redux-saga 不适用于这个概念)。

所以我可以有一个ENTITY_REMOVED动作,它将从状态中删除实体,以及一个监听它的 saga,它将处理 api 调用。

现在假设我有一个表,该表具有批量删除功能。该表由接受 action 的减速器“供电” DATA_OPTIONS_SET。reducer 会更新当前页面、过滤器等内容。还会有一个 saga 来自监听此内容并调用 API 以返回新数据集。

我想有一个批量删除功能,它在高级别删除所有实体,完成后刷新表。

如果我遍历要删除的实体并调度一个ENTITY_REMOVED动作,我将无法知道这些删除何时完成,以便我可以刷新表。

如果我手动调用删除实体的 saga,ENTITY_REMOVED将永远不会被调度,因此实体不会从商店中删除。

这是否意味着我的架构不正确并且我在某个地方转错了方向?

0 投票
2 回答
3898 浏览

javascript - Normalizr - 如何生成与父实体相关的 slug/id

如何使用normalizr分配与实体父级相关的 id/slug ?

例子:

用户调用的 API 响应:

我可以通过以下方式定义我的模式:

问题是图像没有id属性,因此 normalizr 将无法区分它们,除非我们提供id属性。当然,我们可以做类似的事情

并生成唯一标识符。

假设我们收到用户更新并且图像的名称已更新。因为我们在每个规范化中生成唯一标识符,所以我们无法识别和更新现有图像。

我需要一种方法来引用图像实体中的父实体(用户)(在其 id/slug12345-image0中,12345-image1或作为单独的属性。

实现这一目标的最佳方法是什么?

0 投票
1 回答
3118 浏览

redux - 从规范化的 redux 存储中删除项目

请先在此处查看此问题。我正在使用每个人都在使用的这个示例对象。

当用户单击“删除练习”时,消息可能如下所示:

我是否需要遍历所有计划,然后每个计划中的所有练习才能删除此项目?这将如何在减速器中完成?

0 投票
1 回答
1134 浏览

reactjs - 在 react UI 组件中显示标准化数据

假设我们在 redux 商店中对像这样的对象进行了标准化。

我想在 UI 组件中显示每个计划锻炼的详细信息。就像是。

我必须再次去规范化吗?如何转换数据以及在哪里转换?我是否使用 connectStateToProps 来做类似的事情

还是有其他方法?