在 React Table 中是否有必要使用 useMemo?
2021-12-23
10391
我想知道有必要在React表中使用USEMEMO以获取列和数据(如果是),为什么是我的代码:
0066630327
1个回答
是的,建议使用
useMemo
。
useTable
钩子会获取列,如果您的组件因某种原因重新渲染,则会创建一个新的列数组(如果未使用
useMemo
),并且
useTable
将不必要地重新计算底层逻辑。
顺便说一句,您错误地使用了
useMemo
,因为
column
每次
TableSection
重新渲染时都会发生变化,并且它被用作
useMemo
的依赖项。如果将声明移到
useMemo
内部,则它仅在
data
更新时更改。所以,您应该这样使用它
const columns = useMemo(() => {
if (!data[0].length) return [];
return Object.keys(data[0]).map((key) => {
const result = data[0][key]
.replace(/([A-Z]+)/g, ' $1')
.replace(/([A-Z][a-z])/g, ' $1');
return {
Header: result,
accessor: key,
};
});
}, [data]);
Ramesh Reddy
2021-12-23