我是 React 钩子的新手,正在尝试制作一个自定义钩子来连接数组并删除重复的对象。如果道具发生变化以避免不必要的处理,我只希望挂钩运行该过程。
我试图缓存连接的结果并useMemo仅在更改但不起作用时才运行。显然,我在useMemo工作方式上遗漏了一些东西。
我尝试了各种主要围绕细微调整的事情,例如将数组添加到useMemo依赖项而不是合并。任何帮助都会很棒。谢谢。
import * as React from "react";
let merged: any = [];
let result: any = [];
export const useRemoveDuplicateObjects = (arrays: any, value: string) => {
merged = arrays.flat();
const key = (item: any) => {
return item[value];
};
const process = () => {
result = [...new Map(merged.map((item: any) => [key(item), item])).values()];
};
React.useMemo(() => {
if (merged.length) {
process();
}
}, [merged]);
return [result];
};
白衣染霜花
相关分类