来自lodash的isEqual方法与React.memo不兼容?

时间:2019-03-28 15:19:18

标签: reactjs lodash

我正在尝试转换要与React.memo一起使用的组件。 我的某些组件具有对象或数组道具的问题,我想对其进行深入比较。

查看备忘文档,我可以通过一个函数进行比较。

我为它提供了lodash isEqual深度比较方法,但有时没有用。

我认为isEqual在尝试将React组件与内部子项进行比较时存在一些问题。

React子结构示例: example

两个子对象之间运行lodash isEqual会返回false,即使它们完全相同。

我想找到一种继续使用lodash isEqual的方法,因为它适用于任何其他类型的结构,但也可以对其进行修改以使其适用于儿童结构。

有什么建议吗?

谢谢!

PS-我正在运行lodash方法,如下所示:

const component = React.memo((props) => {
...code here with children usage..
}, (oldProps, newProps) => _.isEqual(oldProps, newProps)

1 个答案:

答案 0 :(得分:0)

您具有onClick属性功能,isEqual无法检查功能是否更改,这就是为什么它返回false的原因。