我有一个 useEffect() ,当对象数组发生变化时应该触发它。
useEffect(() => { setNotesToRender(props.notes) }, [props.notes]);
useEffect 依赖项无法比较对象数组,因此上例中的 useEffect() 触发的次数超出了需要的次数。我只希望在数组不同时触发 useEffect() 。
应触发更新的数组示例
array1 = [{id:1,title:'one'},{id:2,title:'two'},{id:3,title:'three'}] array2 = [{id:1,title:'one'},{id:2,title:'two'},{id:3,title:'four'}]
到目前为止我测试过的事情是:
props.notes.length --> 可以工作,但不可靠 - 原因很明显:)
...props.notes --> 如果数组为空则不起作用 - 并且可能会导致严重的性能问题?
比较两个对象数组的最有效方法是什么?数组可能包含超过 1000 个对象。
亲切的问候/K
更新 我需要稍后使用文本搜索过滤掉某些“注释”,这就是我使用 React 状态的原因。我的示例代码中没有显示这一点。
心有法竹
隔江千里
开心每一天1111
相关分类