Reactjs Redux'中的问题;有关createSelector和createEntityAdapter的s文档

Reactjs Redux'中的问题;有关createSelector和createEntityAdapter的s文档,reactjs,redux,react-redux,Reactjs,Redux,React Redux,在页面上: 本节: 声明dispatch(reactionAdded())不会导致组件重新呈现,因为posts在此未更改。但是,reactionAdded似乎确实变异了一个posts导致整个posts数组被一个新数组替换 另一个问题: 这是否意味着selectByIdselectId从createEntityAdapter返回的值将始终返回相同的数组(未更改的引用),只要实体的所有idmemeber的内容不变,即使实体的内容发生了更改?Hmm。我写了那个教程,在写这个例子的时候,我完全有可能犯

在页面上:

本节: 声明
dispatch(reactionAdded())
不会导致组件重新呈现,因为
posts
在此未更改。但是,
reactionAdded
似乎确实变异了一个
posts
导致整个
posts
数组被一个新数组替换

另一个问题:
这是否意味着
selectById
selectId
createEntityAdapter
返回的值将始终返回相同的数组(未更改的引用),只要实体的所有
id
memeber的内容不变,即使
实体的内容发生了更改?

Hmm。我写了那个教程,在写这个例子的时候,我完全有可能犯了一个精神上的错误。是的,
reactionAdded
确实更新了一个post条目,这也意味着由于不可变的更新,应该会生成一个新的
posts
数组。可能需要想出一个不同的例子:)


是的,
selectById
总是直接查找,即返回state.posts.entities[postd]
,因此不涉及派生数据。它只会自动返回该项。

谢谢您的回答!但我在问题中犯了一个错误(编辑以修复)。在第二个问题中,我想问的是,只要id不变(可能是redux工具包问题),即使单个“post”实体发生了变化,id数组是否返回相同的引用。正确。除非实际添加或删除了项(或修改了项的实际ID),否则IDs数组不会更改。对项目中其他字段的更改不会修改IDs数组,因为仍然有一个具有该ID的项目。例外情况是排序-如果提供了排序回调,并且项目字段的更改导致排序顺序更改,IDs数组将更新以匹配排序顺序。这就清楚了。非常感谢。