【发布时间】:2020-06-18 20:42:55
【问题描述】:
这个问题专门针对较新的 react redux 钩子,特别是 useSelector 和 useDispatch。假设您有一个组件是列表,另一个组件是列表项。列表组件包含列表项的列表。
您需要在列表项中使用一部分 redux 存储,并在列表项中调度一个操作。对于列表中的每个项目,您需要的来自 store 和 dispatch 函数的数据将是相同的。
您应该在项目本身中使用这些钩子还是使用父列表组件中的钩子并通过道具将存储和调度功能传递给项目?对列表中的每个项目执行 useDispatch 和 useSelector 挂钩是否会对性能产生一些影响?
编辑以添加代码示例:
const List = () => (
<div>
{someArray.map((item) => {
return (
<ListItem/>
);
})}
</div>
);
const ListItem = () => {
const myState = useSelector((state) => state);
const dispatch = useDispatch();
// Do these here or in the parent and pass down as props?
return (
<div />
);
};
【问题讨论】:
-
这里有少量的上下文代码吗?这很难抽象地回答。简短的回答是“视情况而定”。