我正在搜索一些React项目示例,并且在这里找到了一些示例 https://reactjs.org/community/examples.html
其中之一是一个购物车项目,我检查了代码,发现我无法理解的东西,用componentWillReceiveProps
方法比较了两个数组。
我知道比较两个数组总是会返回false
,这是造成混乱的原因,在这里
https://github.com/jeffersonRibeiro/react-shopping-cart/blob/master/src/components/Shelf/index.js
我的问题在这部分
if (nextFilters !== this.props.filters) {
this.handleFetchProducts(nextFilters, undefined);
}
由于filters
是一个数组,如propTypes
所示。
一切正常,这使我提出了这个问题。
那么这里要做什么,componentWillReceiveProps
是一种特殊的方法,因此它可以至少对两个数组之间进行比较,或者在这里进行到底是什么?
答案 0 :(得分:0)
这可能会重复答案,因此您可能会发现这很有用: check if two arrays contain identical objects - react componentDidUpdate 有关使用getSnapshotBeforeUpdate(prevProps,prevState)的信息,现在优于componentWillReceiveProps,请参见react docs,https://reactjs.org/docs/react-component.html#getsnapshotbeforeupdate