问题标签 [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 投票
2 回答
2159 浏览

performance - 如何使用 redux + normalizr 减少渲染

我有一个使用 React + Redux + Normalizr 的应用程序,我想知道在entities.

如果我只更改实体中的一个实体,它将重新渲染所有组件,而不仅仅是需要该特定实体的组件

0 投票
1 回答
509 浏览

reactjs - 使用 redux 存储标准化数据

我希望我的减速器在状态中填充根对象,独立于它们操作的状态切片。

我发现很多页面都在解释 normalizr 的美妙之处,但没有人解释在哪里以及如何存储这些标准化数据。

问题是:

  1. 我是在尝试做一些不寻常和错误的事情吗?

  2. 我如何修改根状态对象中的状态,因为减速器只对数据片段进行操作。

所以视频减速器:

不仅应该填充state.videos(使用视频 id 数组),还应该state.database.videos使用标准化数据填充(以及其他键,如果视频包含其他实体)。

0 投票
3 回答
1014 浏览

javascript - 类叶组件中的 connect() 是 react+redux 中反模式的标志吗?

目前正在做一个 react + redux 项目。

我还使用normalizr来处理数据结构并重新选择以收集应用程序组件的正确数据。

一切似乎运作良好。

我发现自己处于叶子状组件需要来自商店的数据的情况,因此我需要connect()组件来实现它。

作为一个简化的示例,假设该应用程序是一个书籍编辑系统,有多个用户收集反馈。

在应用程序的不同级别,用户可以对内容做出贡献和/或提供评论。

考虑我正在渲染一个章节,它有内容(和作者)和评论(每个都有自己的内容和作者)。

目前我会根据IDconnect()和章节内容。reselect

因为数据库是用 normalizr 规范化的,所以我真的只获取章节的基本内容字段,以及作者的用户 ID。

为了呈现评论,我会使用一个连接的组件,它可以重新选择链接到章节的评论,然后单独呈现每个评论组件。

再一次,因为数据库是用 normalizr 规范化的,所以我真的只得到了基本内容和评论作者的用户 ID。

现在,要呈现像作者徽章这样简单的东西,我需要使用另一个连接的组件从我拥有的用户 ID 中获取用户详细信息(在呈现章节作者和每个评论作者时)。

该组件将是这样的简单:

它似乎工作正常。

我试图做相反的事情并将数据反规范化回更高级别,以便例如章节数据将直接嵌入用户数据,而不仅仅是用户 ID,并将其直接传递给用户——但这只是似乎只是制作了非常复杂的选择器,并且因为我的数据是不可变的,所以它每次都重新创建对象。

所以,我的问题是,是否有叶状组件(如上面的用户)connect()到商店以呈现反模式的标志?

我是在做正确的事,还是以错误的方式看待这件事?

0 投票
1 回答
56 浏览

redux - 渲染时自动注入实体数据

有没有办法在渲染时自动注入深度嵌套的实体数据?

0 投票
2 回答
2326 浏览

reactjs - redux 中 normalizr 后的非规范化实体

我看到很多关于在 redux 中规范化你的商店的信息。但是,当您想要显示图表中的数据时,您会怎么做?

我的数据看起来像这样

每个实体都有数据。

我想在页面上显示该数据,但我的所有数据都是规范化的。此外,我想为所有三个实体提供一个容器组件。

在有和没有规范化的情况下,这在 redux 中似乎都很难做到。必须有一个推荐的方法来处理它。

0 投票
1 回答
1820 浏览

reactjs - 如何在 normalizr 函数中合并相似的值?

我有这样的服务器异常响应

我想使这种反应正常化,以便与所有人一起接受措辞。所以,我用 normalizr go flat this

但是这样做我得到一个错误“合并两个人时,在他们的“孩子”值中发现不相等的数据。使用早期的值。如何调整 normalizr 以合并具有相同 ID 的人(使用最新数据更新实体)?

0 投票
2 回答
1733 浏览

javascript - Redux normalizr + 处理减少的响应

Normalizr 擅长创建实体的结构化 JSON 存储库。

我们有很多案例显示数据列表,例如posts已经标准化的数据。列出posts的 API 响应仅限于几个关键字段。

posts尽管我们现在需要从 API 中获取包含所有字段的完整 JSON 实体,但 我们也有显示其中之一的情况。

如何最好地处理这个问题?

一个单独的减速器、thunk/saga、选择器和动作?

B只需post将从 API 获取的扩展版本插入到 reducer 中。重用之前的选择器等?

0 投票
2 回答
2095 浏览

javascript - Redux normalizr - 嵌套 API 响应

如何使用normalizr来处理通过标准关键的嵌套标准化JSON API响应{ data: ... }

例如一个Book

我将如何设计模式来处理嵌套数据键?

0 投票
1 回答
503 浏览

javascript - 使用 Normalizr 将非嵌套树规范化为嵌套

我必须规范化来自服务器的两个响应并使用 normalizr 将它们存储在我的商店中。第一个回复给了我部分,第二个回复给了我帖子。版块有很多帖子一篇文章只能有一节

第一反应(部分):

第二个回应(帖子):

我想将响应标准化为这个模式:

由于响应不是嵌套的,我不知道如何定义模式。

0 投票
1 回答
1021 浏览

reactjs - 如何使用 Normalizr 扁平化 Redux 状态中的多对多关系?

设想

我们有一个映射以下关系的数据库:

  • Atag有很多campaigns
  • Acampaign有很多tags
  • campaigns和之间的关系tags由称为 a 的关联实体表示campaign_tag
  • campaign_tag实体有一个priority属性

问题

当我们的关联实体没有唯一的 ID/值时,我们如何实现normalizr (或任何类似的库)来生成一个扁平的应用程序状态来解释我们的关联实体?

笔记/杂项想法

我见过的其他示例仅映射了原始实体,并且似乎更适合一对多或一对一的关系。他们通常会生成如下状态树:

我们的关联实体会进入那个entities组吗?我们应该只添加唯一的 ID 吗?这似乎适得其反。扁平化这种关系是否合适?

任何帮助表示赞赏,谢谢。