问题标签 [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 回答
2260 浏览

redux - 如何将更新合并到规范化的 redux 状态

我刚开始使用 normalizr 来管理我的状态。我已经到了以下代码更新所需对象的地步,但我无法以干净、干燥的方式将它们合并回规范化状态。这样做的首选方法是什么?

原谅我的菜鸟,谢谢你的时间。

0 投票
1 回答
2078 浏览

javascript - normalizr 模式中的嵌套数组

我需要规范化这些数据,以便我同时拥有一个列表数组和另一个待办事项。

这是我得到的:

我一直在尝试他们的例子,但似乎没有一个适用于这些数据。

任何帮助,将不胜感激。

0 投票
1 回答
41 浏览

normalizr - 类型错误:_normalizr.schema 未定义

使用 normalizr 时出现错误“TypeError:_normalizr.schema 未定义”

我第一次使用 normalizr。我已经尝试了 normalizr 文档和其他几个地方的几个样本,但得到了同样的错误。

这是我在收到上述错误时尝试运行的示例:

我的项目正在使用带有 babel-preset-es2015 和 normalizr ^2.1.0 的节点和 webpack

0 投票
1 回答
483 浏览

javascript - 如何用 normalizr 规范化这个?

考虑传回的用户对象:

我想跑:normalize(user);

并得到这样的东西。可能吗?还是正确的?我正在尝试从用户中提取组,所以我可以将它放在它自己的实体插槽中。

我不太确定我的模式应该是什么样子才能达到这个结果。

0 投票
1 回答
992 浏览

redux - 用于客户端数据存储的规范化多对多模式

我正在开发社交网络应用程序的浏览器前端。它有很多关系数据,具有一对多(1:m) 和大多数多对多(m:m) 关系,如下表所示。

我想在应用程序中使用 Flux 数据流架构。我将 Vuex.js 与 Vue.js 一起使用。

正如 Redux.js 文档中所表达的那样,出于各种原因使用 React,最好使用平坦、规范化的存储状态形状,我认为使用 Vue.js 也是如此。

  • 帖子有类别(m:m)
  • 帖子有标签 (m:m)
  • 帖子有评论 (1:m)
  • 帖子中有主题标签 (m:m) // 或用户创建主题标签
  • 帖子中有提及(m:m)//或用户创建用户提及

  • 用户喜欢帖子 (m:m)

  • 用户关注用户、帖子、帖子类别等 (m:m)
  • 用户最喜欢的帖子 (m:m)

等等

我将需要显示帖子提要及其所有其他实体的相关数据,如用户、评论、类别、标签。为此,就像有一个1:many关系一样,将这个关系的数据的 many 边保存在一侧(可以说是parent),即使它实际上是many-to-many,对于通常查询它们似乎没问题组成他们的父母,那就是帖子。但是,我还需要反向查询商店状态,例如,获取具有特定类别标签的帖子

在这种情况下,它不像帖子那样容易。我需要一个关系实体来保存两个连接数据实体的id对,就像 RDBMS 中的连接表关联表一样,以便于访问和更新,避免深入挖掘状态,并避免不必要的重新渲染(即要求是 React 或 Vue.js 和 GUI 特定的)。

我怎样才能相对容易和有效地实现这一点,例如对于1:many关系?

0 投票
1 回答
392 浏览

normalizr - 规范化共享当前模式的嵌套实体

我的目标是规范化这个对象:

进入这个结果:

如果您注意到, 中的项目related_talks被视为与 a 相同talk

我的模式遵循示例并设置如下:

无论我尝试什么,我都无法将项目related_talks添加到result.talks数组中。然而,它在entities对象中。

为了适应这种情况,我的架构配置缺少什么?

0 投票
1 回答
350 浏览

javascript - 如何使用 normalizr 和/或 immutablejs 创建规范化数据结构

我有一个从客户端 API 返回的不规则数据块。我没有能力让他们改变它,他们已经说得很清楚了

前几层中的大多数永远不会改变,对 UI 的影响为零。我尝试了几种使用 normalizr 的变体,但没有任何远程工作。对我来说重要的数据是“组件”级别的。最终,我关心的唯一数据是来自“组件”键的“项目”数组:

0 投票
0 回答
321 浏览

javascript - Normalizr – 是否可以有条件地删除实体?

所以我正在使用 normalizr 来按摩一些我认为合适的数据。但是,我的应用程序不需要通过 normalizr 传递的一些实体。有没有办法使用流程策略或类似的方法来丢弃实体?谢谢!

这样的事情可能吗?还是有更好的方法来删除实体?

0 投票
0 回答
79 浏览

javascript - 如何使用 normalizr 2 创建主/根模式?

假设我有以下架构和数据:

我将如何设置一个resourceresourceList模式来包装我的所有模式,以便在我的 api 调用中我只需要引用resourceresourceList例如:

或者

我试过这样做:

但这似乎不起作用。

0 投票
1 回答
557 浏览

normalizr - 尝试理解 normalizr 的 schema.entity VS Array and Object

全部:

我试图了解实体数组和对象之间的关系:

  1. 它们只是描述数据差异结构的不同格式吗?或者实体与其他两个有很大不同?
  2. 规范化的数据结果具有类似 {result:,entities:}的结构,数据结构是否仅使用 schema.Entity 定义在实体中,或者 schema.Array 和 Object 也可以?当我定义一个只使用对象和数组的架构时,似乎没有放入实体,我不确定这是我的架构 def 错误还是 normalizr 的工作方式?
  3. 如果只有 schema.Entity() 定义的数据可以放入实体中,那么我如何将数据数组放入其中,例如 {0:.., 1:..,2:,}?

例如,我有如下数据:

谢谢