【发布时间】:2019-08-19 10:28:48
【问题描述】:
我正在尝试将我的组件转换为与 React.memo 一起使用。 我的一些组件具有我想深入比较的对象或数组道具的问题。
查看react docs for memo,我可以传递一个函数来进行比较。
我为它提供了lodash isEqual深度比较方法,但有时它不起作用。
我认为 isEqual 在尝试将 react 组件与内部的 children 道具进行比较时存在一些问题。
React 子结构示例:
在两个子对象之间运行 lodash isEqual 会返回 false,即使它们完全相同。
我想找到一种方法来继续使用 lodash isEqual,因为它适用于任何其他类型的结构,但也可以修改它以适用于儿童。
有什么建议吗?
谢谢!!!
PS - 我像这样运行 lodash 方法:
const component = React.memo((props) => {
...code here with children usage..
}, (oldProps, newProps) => _.isEqual(oldProps, newProps)
【问题讨论】:
-
记住 childNodes 不是专门的 props。所以不是 lodash isEqual 比较,更多的是 React.memo 的回调。那里有子对象吗?。
标签: reactjs lodash react-hooks