createSlice:Redux存储访问在还原器和选择器之间有所不同?

createSlice:Redux存储访问在还原器和选择器之间有所不同?,redux,Redux,使用createSlice时,我可以给该切片命名,例如:“person”。在reducer代码中,store显然是指整个redux store的“person”部分(前提是我使用了正确的configureStore设置)。所以我可以说store.firstName='Bernhad';那很好 在选择器中,情况似乎略有不同:商店绑定到(整个?)redux商店。所以我必须编码'firstnamelector=(store)=>store.person.firstName;' 我认为这是相当不对称的—

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

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

我认为这是相当不对称的——一次不得不使用store.person,另一次只是store——我想知道:为什么会这样

非常感谢您的解释! 伯恩哈德(Bernhard)

一个片段是:你所在州的“一部分”,独立运作。它不知道它之外还有什么存在。您可以将其安装在您的商店或其他商店的不同位置,但其行为仍然完全相同


选择器是另一回事。使用选择器,您可以从外部视角查看整个商店,并选择所需的值。在该选择器中,您可能希望访问多个切片以导出一个值,因此您将始终查看“整体”。

因此,为了“全局数据访问”,该选择器是一个仔细添加切片之间耦合的地方。好的,我明白了。就我个人而言,我想让我的组件尽可能靠近单个切片:-),但无论如何,谢谢你。你的组件应该接近你想要显示的内容,而切片应该接近你的数据结构。可能存在(而且经常存在)重叠,但不要将组件状态放在切片中。组件状态属于本地组件状态,而不是全局redux状态。