问题标签 [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 - 扩展运算符覆盖新对象中的元素而不是组合
我从我的 API 获取数据,并在将其转储到 redux 之前通过 normalizr 传递它。当我从 API 获取人员数据时,reducer 应该将它们附加到人员存储中。现在我的 reducer 正在覆盖存储中的所有现有数据。
减速机:
第一个控制台日志是 reducer 使用一次后的状态。它有我保存到商店的最初一组人:
第二个控制台日志将是要添加的新人的有效负载:
那么第三个控制台日志应该是两种状态结合起来的吧?但它只是用 sally 和 ana 重复最后一个,并覆盖其他所有内容。
javascript - 如何使用 Normalizr 定义递归模型的模式
尝试规范化有效负载时遇到一些问题,该有效负载包含与使用Normalizr的父级相同类型的嵌套模式
例如,我有一个初始对象 ( menu
),它有一个子对象 (),sections
它是一个对象数组 ( section
),可以深入 n。
我首先创建了一个menu
模式,该模式在定义中具有链接到模式的部分,该部分sections
适用于第一次传递,但随后不会处理部分的子项,因此我在section
模式中添加了一个具有相同名称的后续定义(值得一试)但它没有用。
我希望最终得到以下对象:
redux - 如何将 id 数组添加到没有它们的实体
我的架构几乎完全按照我想要的方式设置在 redux 状态,除了我想向 formTemplate 对象添加一个表单 ID 数组。它看起来像这样:
这是我的架构
这是我正在规范化的 API 响应示例
javascript - normalizr v3 和 JSON api
我想规范化从 API 收到的响应。典型的响应可能如下所示:
如何编写模式以删除“数据”容器?目前,我的架构如下所示:
我像这样使用它:
normalizedProjects然后看起来像这样:
我也不确定为什么项目列表包含在“未定义”中?
javascript - 返回结果中嵌套规范化数据的 ID 列表
例如,我有一个简单的 JSON,如下所示:
我会得到这个标准化的 JSON:
在normalizedData.result
中,我将只获得文章 ID。但是如果我需要comments
or的 ID 怎么办users
?基本上我可以得到它Object.keys()
,可能有没有其他方法,normalizr 可以从 API 为我们提供在标准化步骤中获取这些数据?我找不到任何关于它的API。或者你能建议任何方法来做到这一点,而不是自动?因为Object.keys()
不适合我。
normalizr - 如何获取对 normalizr 中嵌套实体的引用?
我正在规范一个一级嵌套的批次列表。第一级地块被称为主人,嵌套的地块是奴隶。
我明白了:
它有什么问题。但我想在标准化结果中添加更多内容,但我不知道如何。
- 在规范化的奴隶上拥有主批次 id
- 结果中还有一个从属 ID 数组
所以前面的例子会像这样标准化:
normalizr 可以做到这一点吗?
javascript - 将架构从 Normalizr v2 转换为 v3 时遇到问题
我刚刚更新到 normalizr 版本 3.1.x,所以我可以利用非规范化。尽管他们已经显着改变了他们的 API。我无法转移我的模式。
那是我现有的用户模式。我还在我的 redux 操作中使用了redux-normalizr 中间件,所以我将架构连接到我的操作,如下所示:
这是我第一次尝试转换模式。看来您不能像使用一样调用 schema.Array arrayOf
,所以我认为我需要将数组调用移动到架构中。
动作是相同的,但我已经删除了在 arrayOf 中包装模式。所有用户数据都只是在没有任何规范化的情况下转储到结果中。数据是用户对象的列表,每个对象都包含一个 id,normalizr 应该获取它。我正在努力弄清楚如何让 normalizr 识别它是我认为的对象数组。
javascript - 如何使用 normalizr 来展平具有不同类型对象的数组?
所以,我从服务器得到一个 JSON 响应,看起来像:
该data
属性是所有具有相同结构的接触对象的数组。每个联系人对象都有一系列相关的电子邮件和电话。
该included
属性是所有类型的相关对象的数组,这意味着它们可以共享和标识甚至具有不同的对象结构。
我希望尝试使响应变平以更易于使用并类似于:
我已经设法使用以下方法规范化联系人数据:
但这显然不包括entities
.
我实际上不知道这个库是否能够实现我想要实现的目标,但我们将不胜感激。
虽然不是基于上述数据,但 API 是基于jsonapi.org模式,因此主页上的示例与结构完全匹配。
javascript - 无法使用新的 Normalizr 3.1.0 对实体进行非规范化
我试图将用户非规范化回一个完整的对象。我正在尝试根据此处的文档进行操作。据我了解,输入应该是结果值之一,然后您提供架构和实体来处理重建对象。但是,返回的值是一个具有 0 键和输入值的对象。{0:44}
例如,而不是整个非规范化的用户对象。
userSchemas.js
非规范化
this.props.users.entities
编辑:可以粘贴到http://requirebin.com的要点,在控制台中显示问题
javascript - 在 normalizr 模式中设置深度关联
我有一个如下所示的服务器响应:
正如你所看到的,让这件事变得棘手的是它并不简单arrayOf
:我想规范化article.related_articles.results
.
我试过这个,无济于事:
似乎支持的关系必须是“顶级”。
任何人都知道我怎么能得到类似的东西:
谢谢!