小编new*_*ent的帖子

在 React Redux 中选择数组时避免重新渲染的正确方法是什么?

有没有办法从 Redux 存储中的数组中选择派生数组而不进行虚假渲染?

我的 Redux 存储包含一个对象数组。

state = {items: [{id: 1, keys...}, {id: 2, keys...}, {id: 3, keys...}, ...]}
Run Code Online (Sandbox Code Playgroud)

我编写了一个选择器来返回 id 数组。

const selectIds = (state: MyStateType) => {
  const {items} = state;
  let result = [];
  for (let i = 0; i < items.length; i++) {
    result.push(items[I].id);
  }
  return result;
};
Run Code Online (Sandbox Code Playgroud)

然后,我在组件内部使用 React-Redux 的useSelector钩子调用这个选择器来渲染组件列表。

const MyComponent = () => {
  const ids = useSelector(selectIds);

  return (
    <>
      {ids.map((id) => (
        <IdComponent id={id} key={id} />
      ))}
    </>
  ); …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs redux react-redux reselect

3
推荐指数
1
解决办法
1417
查看次数

标签 统计

react-redux ×1

reactjs ×1

redux ×1

reselect ×1

typescript ×1