Моя проблема в том, что глубокое сравнение lodash равенства и строгого равенства === возвращает разные значения при сравнении полей nextProps и self.props в методе жизненного цикла componentWillReceiveProps.
- Значит ли это, что значения этих свойств должны быть разных типов? Я предполагаю, что _.isEqual выполняет преобразование типов для сравнения равенства, поскольку === не делает.
- Рекомендуется ли использовать _.isEqual при проверке равенства между полями nextProps и self.props?
Вот мой конкретный пример -
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" }
}
Кто-нибудь знает, что может происходить?