gpt4 book ai didi

javascript - ShallowCompare 不适用于不可变的 js

转载 作者:行者123 更新时间:2023-12-03 05:50:11 24 4
gpt4 key购买 nike

我在我的 React 应用程序中使用 Immutable js!作为优化的一部分,我尝试在shouldComponentUpdate中使用shallowCompare,就在那时我发现shallowCompare对于未更改的状态和 Prop 返回true!我的 props 中有一个路径和模块键,它们是不可变的对象(分别是 list 和 map!)我不确定我是否做错了什么或者shallowCompare 不支持不可变的 js,你们能帮我吗?

最佳答案

在大多数情况下,shallowCompare 可以完美地处理不可变对象(immutable对象)。

如果您需要 Immutable.is() 的特殊支持,您可以使用shallowEqualImmutable 。它更好地理解不可变集合,因为它认为相同值的列表是相同的。

import React from 'react';
import { shallowEqualImmutable } from 'react-immutable-render-mixin';
class Test extends React.Component {
shouldComponentUpdate(nextProps, nextState) {
return !shallowEqualImmutable(this.props, nextProps) ||
!shallowEqualImmutable(this.state, nextState);
}

render() {
return <div></div>;
}
}

关于javascript - ShallowCompare 不适用于不可变的 js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40188427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com