在获取数据和返回相同数据时,redux状态是否会更改?

在获取数据和返回相同数据时,redux状态是否会更改?,redux,Redux,在redux中,如果我获取数据,如果我返回相同的数据,它会触发componentDidUpdate吗?我是否可以假设以前的道具和当前道具不相同,即使获取的数据与以前的数据相同?是和否 shouldComponentUpdate仅使用浅层比较,这基本上对props与prevProps进行严格的相等性检查 这意味着: 如果您的道具(通过mapStateToProps)是基本类型-字符串、数字、布尔值-那么如果Redux返回相同的值,则不会调用componentDidUpdate 如果它们是复杂的对象

在redux中,如果我获取数据,如果我返回相同的数据,它会触发componentDidUpdate吗?我是否可以假设以前的道具和当前道具不相同,即使获取的数据与以前的数据相同?

是和否

shouldComponentUpdate
仅使用浅层比较,这基本上对
props
prevProps
进行严格的相等性检查

这意味着:

如果您的道具(通过
mapStateToProps
)是基本类型-字符串、数字、布尔值-那么如果Redux返回相同的值,则不会调用
componentDidUpdate

如果它们是复杂的对象、数组等,则会调用
componentdiddupdate
,即使数据相同。这是因为
{foo:'bar'}
!==<代码>{foo:'bar'}。您可以连接到
shouldComponentUpdate
并自己检查相等性,以防止这种情况发生。例如,您可以执行以下操作:

shouldComponentUpdate(nextProps) {
   if (JSON.stringify(nextProps.foo) === JSON.stringify(this.props.foo)) {
      return false;
   }
   return true;
}
您的实际实施应该考虑到其他可能/可能不会改变的道具