问题标签 [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.
javascript - 处理标准化响应的最佳方法是什么?
我正在使用 normalizr 来规范化响应。
我的问题是我不知道如何管理标准化响应。
我想将单词传递给带有定义的反应组件。如何检索具有嵌套定义的单词并将其呈现给我的组件。
normalizr - 如何将一组平面对象标准化为其实体?
给定一个如下所示的输入:
以及所需的输出:
我不确定如何为我的 4 种实体类型定义模式,这些实体类型会将多个字段从展平的根对象中拉出并重命名它们。我看到有一个assignEntity
我可以传递的论点,我认为我会使用它来重命名部分,但我不确定如何定义 aSchema
来表示一个平面对象变成四个实体。
javascript - Normalizr 不处理信封中的数据
我正在使用 normalizr 处理从 Api 收到的数据。当我收到列表时,我得到了预期的标准化实体。
但是当我发送更新一个实体的请求时,我只收到一个包裹在数据信封中的实体,而 normalizr 没有正确处理。
我收到如下数据,列表中只有一名玩家:
我应该更改什么以将播放器检索为规范化实体?
更新:
Api 调用示例。
redux - Normalizr 为单个实体创建结果
我正在使用 Normalizr 从不同的 API 端点获得相同的响应形状。
然后我想处理标准化的反应,不管它是怎么来的。
但问题是,对于我得到的单个项目result: 1
而不是数组result: [1]
,它会在我以后的代码中引起一些问题。
现在我必须result
手动标准化为数组,但也许有更好的方法来做到这一点?
reactjs - 我为什么要保持状态平坦
我正在将 ReactJs 与 Redux 一起使用,在一些教程和代码中,我看到人们建议并使用 normalizr 来保持状态平坦。但是保持它平坦的真正优势是什么?如果我不这样做,我会遇到任何问题吗?有必要吗 ?
redux - Normalizr 和服务器生成的 ID
我normalizr
用来组织我的redux
-store 状态。
假设我已经标准化了待办事项列表:
然后我想实施addTodo
行动。我需要在 todo 对象中有一个 id,所以我生成一个随机的:
但问题是最终所有数据都将保存到服务器,并且生成的 id 应该替换为真实的服务器分配的 id。现在我像这样合并它们:
这似乎是一个可行的解决方案,但也有很多开销。你知道有什么方法可以简化这个并且不进行REPLACE_TODO
操作吗?
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
将永远不会被调度,因此实体不会从商店中删除。
这是否意味着我的架构不正确并且我在某个地方转错了方向?
javascript - Normalizr - 如何生成与父实体相关的 slug/id
如何使用normalizr分配与实体父级相关的 id/slug ?
例子:
用户调用的 API 响应:
我可以通过以下方式定义我的模式:
问题是图像没有id
属性,因此 normalizr 将无法区分它们,除非我们提供id
属性。当然,我们可以做类似的事情
并生成唯一标识符。
假设我们收到用户更新并且图像的名称已更新。因为我们在每个规范化中生成唯一标识符,所以我们无法识别和更新现有图像。
我需要一种方法来引用图像实体中的父实体(用户)(在其 id/slug12345-image0
中,12345-image1
或作为单独的属性。
实现这一目标的最佳方法是什么?
reactjs - 在 react UI 组件中显示标准化数据
假设我们在 redux 商店中对像这样的对象进行了标准化。
我想在 UI 组件中显示每个计划锻炼的详细信息。就像是。
我必须再次去规范化吗?如何转换数据以及在哪里转换?我是否使用 connectStateToProps 来做类似的事情
还是有其他方法?