使用useSelector()钩子使用对象析构函数从redux状态中提取特定值是否安全



使用useReducer()挂钩从redux状态提取特定值是否安全,如下所示:

const {item1, item2, item3} = useSelector(state => state);

或者这会引起问题(关于重新发布者和州(,或者被视为不良做法?

您应该永远不要从选择器返回整个state

根据文档,useSelector在分派后选择器返回值发生任何变化时都会重新呈现。因此,重要的是,useSelector的每次调用都应返回该组件所需的尽可能小的状态

在这种情况下,最好的选择是三个单独的useSelector调用,每个调用返回一个字段,或者一个useSelector调用,只提取这些字段并返回它们。但是,由于返回新的对象引用会导致重新渲染,因此在一起返回这些字段时,需要使用shallowEqual比较函数或记忆选择器函数来避免不必要的重新渲染。

相关内容

  • 没有找到相关文章

最新更新