createSlice:Reducer 和选择器之间的 Redux 存储访问不同?

时间:2021-06-10 09:47:17

标签: redux

使用 createSlice 时,我可以为切片命名,例如:'person'。在reducer 代码中,store 显然是指整个redux store 的“person”部分(前提是我使用了正确的configureStore 设置)。所以我可以说 store.firstName = 'Bernhad';没关系。

在选择器中,事情似乎略有不同:store 绑定到(整个?)redux store。所以我必须编码 'firstNameSelector = (store) => store.person.firstName;'

我认为这是非常不对称的 - 一次必须使用 store.person,另一次只使用 store - 我想知道:为什么会这样?

非常感谢任何解释! 伯恩哈德

1 个答案:

答案 0 :(得分:1)

切片是:您状态的“一部分”,它自己工作。它不知道在它之外存在任何东西。您可以将它安装在您商店甚至其他商店的不同位置,它的行为仍然完全相同。

选择器是另一回事。使用选择器,您可以从外部视角查看整个商店,然后选择您需要的值。在该选择器中,您可能希望访问多个切片以获取值,因此您总是会查看“整体”。

相关问题