【发布时间】:2018-10-12 01:51:39
【问题描述】:
我的问题是 lodash 对相等性的深度比较和 === 的严格相等性在比较 componentWillReceiveProps 生命周期方法中的 nextProps 和 self.props 的字段时返回不同的值。
- 这是否意味着这些属性的值必须是不同的类型?我假设 _.isEqual 确实会进行类型转换以比较相等性,因为 === 不会。
- nextProps 和 self.props 的字段进行相等性检查时,是否推荐使用 _.isEqual?
这是我的具体例子 -
componentWillReceiveProps(nextProps){
(nextProps.obj === self.props.obj); // false
_.isEqual(nextProps.obj, self.props.obj); // true
typeof(nextProps.obj); // object
typeof(self.props.obj); // object
nextProps.obj; // { k1: "v1", k2: "v2", k3: "v3" }
self.props.obj; // { k1: "v1", k2: "v2", k3: "v3" }
}
有人知道会发生什么吗?
【问题讨论】:
标签: reactjs properties react-redux lodash equality