在 Redux 存储中对同一对象进行多个引用是否安全?

问题描述 投票:0回答:1

想象一家这样的商店:

{
    data: [ object1, object2, object3 ],
    current: object2
}

store.current
应该指向当前编辑或选择的对象。我不是在复制
object2
,我只是指向与
data[2]
相同的对象。

我被告知要避免在 redux 商店中多次引用这样的内容,但没有得到解释。建议使用索引(例如

current: 2
),或者在更复杂的场景中,使用实际对象的路径(例如上面的
current: 'data.2'
)。

实际用例涉及树形数据结构,其中路径可能类似于

current: 'data.2.children.8.children.2.children.18'
,每次组件中需要当前选定的对象时都需要遍历。

store.current
中存储对此对象的引用是否安全,或者这样做是否存在相关的陷阱?

redux redux-toolkit
1个回答
0
投票

至于为什么这可能不是一个好主意:对对象的每次修改都需要新的副本 - 如果您在三个地方引用了某些内容,您不仅必须创建该副本,而且还必须将所有引用更新为现在指向那个副本。

您应该使用选择器函数,而不是复制数据(引用或不引用)或在组件中进行遍历。

© www.soinside.com 2019 - 2024. All rights reserved.