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

javascript - 扩展运算符覆盖新对象中的元素而不是组合

我从我的 API 获取数据,并在将其转储到 redux 之前通过 normalizr 传递它。当我从 API 获取人员数据时,reducer 应该将它们附加到人员存储中。现在我的 reducer 正在覆盖存储中的所有现有数据。

减速机:

第一个控制台日志是 reducer 使用一次后的状态。它有我保存到商店的最初一组人:

第二个控制台日志将是要添加的新人的有效负载:

那么第三个控制台日志应该是两种状态结合起来的吧?但它只是用 sally 和 ana 重复最后一个,并覆盖其他所有内容。

0 投票
2 回答
7255 浏览

javascript - 如何使用 Normalizr 定义递归模型的模式

尝试规范化有效负载时遇到一些问题,该有效负载包含与使用Normalizr的父级相同类型的嵌套模式

例如,我有一个初始对象 ( menu),它有一个子对象 (),sections它是一个对象数组 ( section),可以深入 n。

我首先创建了一个menu模式,该模式在定义中具有链接到模式的部分,该部分sections适用于第一次传递,但随后不会处理部分的子项,因此我在section模式中添加了一个具有相同名称的后续定义(值得一试)但它没有用。

我希望最终得到以下对象:

0 投票
2 回答
417 浏览

redux - 如何将 id 数组添加到没有它们的实体

我的架构几乎完全按照我想要的方式设置在 redux 状态,除了我想向 formTemplate 对象添加一个表单 ID 数组。它看起来像这样:

这是我的架构

这是我正在规范化的 API 响应示例

0 投票
2 回答
485 浏览

javascript - normalizr v3 和 JSON api

我想规范化从 API 收到的响应。典型的响应可能如下所示:

如何编写模式以删除“数据”容器?目前,我的架构如下所示:

我像这样使用它:

normalizedProjects然后看起来像这样:

我也不确定为什么项目列表包含在“未定义”中?

0 投票
1 回答
510 浏览

javascript - 返回结果中嵌套规范化数据的 ID 列表

例如,我有一个简单的 JSON,如下所示:

在使用normalizr示例中的模式进行规范化之后

我会得到这个标准化的 JSON:

normalizedData.result中,我将只获得文章 ID。但是如果我需要commentsor的 ID 怎么办users?基本上我可以得到它Object.keys(),可能有没有其他方法,normalizr 可以从 API 为我们提供在标准化步骤中获取这些数据?我找不到任何关于它的API。或者你能建议任何方法来做到这一点,而不是自动?因为Object.keys()不适合我。

0 投票
1 回答
712 浏览

normalizr - 如何获取对 normalizr 中嵌套实体的引用?

我正在规范一个一级嵌套的批次列表。第一级地块被称为主人,嵌套的地块是奴隶。

我明白了:

它有什么问题。但我想在标准化结果中添加更多内容,但我不知道如何。

  • 在规范化的奴隶上拥有主批次 id
  • 结果中还有一个从属 ID 数组

所以前面的例子会像这样标准化:

normalizr 可以做到这一点吗?

0 投票
1 回答
205 浏览

javascript - 将架构从 Normalizr v2 转换为 v3 时遇到问题

我刚刚更新到 normalizr 版本 3.1.x,所以我可以利用非规范化。尽管他们已经显着改变了他们的 API。我无法转移我的模式。

那是我现有的用户模式。我还在我的 redux 操作中使用了redux-normalizr 中间件,所以我将架构连接到我的操作,如下所示:

这是我第一次尝试转换模式。看来您不能像使用一样调用 schema.Array arrayOf,所以我认为我需要将数组调用移动到架构中。

动作是相同的,但我已经删除了在 arrayOf 中包装模式。所有用户数据都只是在没有任何规范化的情况下转储到结果中。数据是用户对象的列表,每个对象都包含一个 id,normalizr 应该获取它。我正在努力弄清楚如何让 normalizr 识别它是我认为的对象数组。

0 投票
1 回答
733 浏览

javascript - 如何使用 normalizr 来展平具有不同类型对象的数组?

所以,我从服务器得到一个 JSON 响应,看起来像:

data属性是所有具有相同结构的接触对象的数组。每个联系人对象都有一系列相关的电子邮件和电话。

included属性是所有类型的相关对象的数组,这意味着它们可以共享和标识甚至具有不同的对象结构。

我希望尝试使响应变平以更易于使用并类似于:

我已经设法使用以下方法规范化联系人数据:

但这显然不包括entities.

我实际上不知道这个库是否能够实现我想要实现的目标,但我们将不胜感激。

虽然不是基于上述数据,但 API 是基于jsonapi.org模式,因此主页上的示例与结构完全匹配。

0 投票
1 回答
1766 浏览

javascript - 无法使用新的 Normalizr 3.1.0 对实体进行非规范化

我试图将用户非规范化回一个完整的对象。我正在尝试根据此处的文档进行操作。据我了解,输入应该是结果值之一,然后您提供架构和实体来处理重建对象。但是,返回的值是一个具有 0 键和输入值的对象。{0:44}例如,而不是整个非规范化的用户对象。

userSchemas.js

非规范化

this.props.users.entities

编辑:可以粘贴到http://requirebin.com的要点,在控制台中显示问题

0 投票
1 回答
136 浏览

javascript - 在 normalizr 模式中设置深度关联

我有一个如下所示的服务器响应:

正如你所看到的,让这件事变得棘手的是它并不简单arrayOf:我想规范化article.related_articles.results.

我试过这个,无济于事:

似乎支持的关系必须是“顶级”。

任何人都知道我怎么能得到类似的东西:

谢谢!