可以在componentWillReceiveProps react方法中比较两个数组吗?

时间:2019-04-09 11:29:55

标签: reactjs

我正在搜索一些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是一种特殊的方法,因此它可以至少对两个数组之间进行比较,或者在这里进行到底是什么?

1 个答案:

答案 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