javascript - useMemo on .map 语句中使用的函数

标签 javascript reactjs react-hooks

我对钩子(Hook)很陌生,所以在这里有一个问题:
我在 React 组件中具有类似的功能

const getSection = assignmentSectionId => {
    const findSection = sections.find(
      section => section.sectionRefId === assignmentSectionId,
    );

    return findSection ? findSection.name : '';
  };

现在我得到了在该功能上使用 useMemo 的建议。目前我使用的是:
return (
    <List
      role="list"
      aria-label={ariaLabel}
    >
      {assignments.map(assignment => {
        const sectionName = getSection(assignment.sectionId);

        return (
          <Card
            name={sectionName}
          />
        );
      })}
    </List>
  );
};

如果可能的话,在这里使用 useMemo 的最佳(最佳)方法是什么?

最佳答案

您可以使用 Array#map里面useMemo .它只是在assignments之后重新渲染列表值(value)变化

const memoList = React.useMemo(()=> assignments.map(assignment => {
        const sectionName = getSection(assignment.sectionId);
        return (<Card  name={sectionName}/>)
      }),[assignments])

return (
    <List role="list" aria-label={ariaLabel}>{memoList}</List>
  );
};

关于javascript - useMemo on .map 语句中使用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60741350/

相关文章:

reactjs - 工具栏draftjs编辑器中的自定义按钮

javascript - 为什么 React Hook useState 使用 const 而不是 let

javascript - react : controlled inputs in functional components using useState

javascript - 如何为游戏对象使用抽象构造函数?

javascript - 防止 ui-ressized 句柄自动触发溢出滚动条

javascript - 将图像保存在使用 javascript guillotine 插件生成的 php 中

javascript - 样式加载器不适用于 Webpack2

javascript - 返回的 [object HTMLCollection] 和 [object HTMLDivElement] 之间的差异

javascript - 有一种情况我需要将对象数组转换为数组数组

javascript - 如何在 react 中显示图像数组中的图像