问题标签 [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.
performance - 如何使用 redux + normalizr 减少渲染
我有一个使用 React + Redux + Normalizr 的应用程序,我想知道在entities
.
如果我只更改实体中的一个实体,它将重新渲染所有组件,而不仅仅是需要该特定实体的组件
reactjs - 使用 redux 存储标准化数据
我希望我的减速器在状态中填充根对象,独立于它们操作的状态切片。
我发现很多页面都在解释 normalizr 的美妙之处,但没有人解释在哪里以及如何存储这些标准化数据。
问题是:
我是在尝试做一些不寻常和错误的事情吗?
我如何修改根状态对象中的状态,因为减速器只对数据片段进行操作。
所以视频减速器:
不仅应该填充state.videos
(使用视频 id 数组),还应该state.database.videos
使用标准化数据填充(以及其他键,如果视频包含其他实体)。
javascript - 类叶组件中的 connect() 是 react+redux 中反模式的标志吗?
目前正在做一个 react + redux 项目。
我还使用normalizr来处理数据结构并重新选择以收集应用程序组件的正确数据。
一切似乎运作良好。
我发现自己处于叶子状组件需要来自商店的数据的情况,因此我需要connect()
组件来实现它。
作为一个简化的示例,假设该应用程序是一个书籍编辑系统,有多个用户收集反馈。
在应用程序的不同级别,用户可以对内容做出贡献和/或提供评论。
考虑我正在渲染一个章节,它有内容(和作者)和评论(每个都有自己的内容和作者)。
目前我会根据IDconnect()
和章节内容。reselect
因为数据库是用 normalizr 规范化的,所以我真的只获取章节的基本内容字段,以及作者的用户 ID。
为了呈现评论,我会使用一个连接的组件,它可以重新选择链接到章节的评论,然后单独呈现每个评论组件。
再一次,因为数据库是用 normalizr 规范化的,所以我真的只得到了基本内容和评论作者的用户 ID。
现在,要呈现像作者徽章这样简单的东西,我需要使用另一个连接的组件从我拥有的用户 ID 中获取用户详细信息(在呈现章节作者和每个评论作者时)。
该组件将是这样的简单:
它似乎工作正常。
我试图做相反的事情并将数据反规范化回更高级别,以便例如章节数据将直接嵌入用户数据,而不仅仅是用户 ID,并将其直接传递给用户——但这只是似乎只是制作了非常复杂的选择器,并且因为我的数据是不可变的,所以它每次都重新创建对象。
所以,我的问题是,是否有叶状组件(如上面的用户)connect()
到商店以呈现反模式的标志?
我是在做正确的事,还是以错误的方式看待这件事?
redux - 渲染时自动注入实体数据
有没有办法在渲染时自动注入深度嵌套的实体数据?
reactjs - redux 中 normalizr 后的非规范化实体
我看到很多关于在 redux 中规范化你的商店的信息。但是,当您想要显示图表中的数据时,您会怎么做?
我的数据看起来像这样
每个实体都有数据。
我想在页面上显示该数据,但我的所有数据都是规范化的。此外,我想为所有三个实体提供一个容器组件。
在有和没有规范化的情况下,这在 redux 中似乎都很难做到。必须有一个推荐的方法来处理它。
reactjs - 如何在 normalizr 函数中合并相似的值?
我有这样的服务器异常响应
我想使这种反应正常化,以便与所有人一起接受措辞。所以,我用 normalizr go flat this
但是这样做我得到一个错误“合并两个人时,在他们的“孩子”值中发现不相等的数据。使用早期的值。如何调整 normalizr 以合并具有相同 ID 的人(使用最新数据更新实体)?
javascript - Redux normalizr + 处理减少的响应
Normalizr 擅长创建实体的结构化 JSON 存储库。
我们有很多案例显示数据列表,例如posts
已经标准化的数据。列出posts
的 API 响应仅限于几个关键字段。
posts
尽管我们现在需要从 API 中获取包含所有字段的完整 JSON 实体,但 我们也有显示其中之一的情况。
如何最好地处理这个问题?
一个单独的减速器、thunk/saga、选择器和动作?
B只需post
将从 API 获取的扩展版本插入到 reducer 中。重用之前的选择器等?
javascript - 使用 Normalizr 将非嵌套树规范化为嵌套
我必须规范化来自服务器的两个响应并使用 normalizr 将它们存储在我的商店中。第一个回复给了我部分,第二个回复给了我帖子。版块有很多帖子。一篇文章只能有一节。
第一反应(部分):
第二个回应(帖子):
我想将响应标准化为这个模式:
由于响应不是嵌套的,我不知道如何定义模式。
reactjs - 如何使用 Normalizr 扁平化 Redux 状态中的多对多关系?
设想
我们有一个映射以下关系的数据库:
- A
tag
有很多campaigns
- A
campaign
有很多tags
campaigns
和之间的关系tags
由称为 a 的关联实体表示campaign_tag
campaign_tag
实体有一个priority
属性
问题
当我们的关联实体没有唯一的 ID/值时,我们如何实现normalizr (或任何类似的库)来生成一个扁平的应用程序状态来解释我们的关联实体?
笔记/杂项想法
我见过的其他示例仅映射了原始实体,并且似乎更适合一对多或一对一的关系。他们通常会生成如下状态树:
我们的关联实体会进入那个entities
组吗?我们应该只添加唯一的 ID 吗?这似乎适得其反。扁平化这种关系是否合适?
任何帮助表示赞赏,谢谢。