如何深入检查Redux商店中的nextProps?

时间:2019-07-11 09:54:22

标签: reactjs redux react-lifecycle-hooks

我创建了一个清单组件,默认情况下所有检查都为FALSE,因为我单击以检查设置了组件状态的任何一项并将状态发送到Store reducer 。这样做之后问题就来了。问题是:-我想借助MyComp将数据存储在另一个组件(mapStateToProps)中。但是,componentWillReceiveProps并未在我更改清单数据时触发。

我搜索了这个问题,发现反应无法深入检查即将到来的道具。我尝试使用单个toggle(true/false)道具,它对我有用。

这是MyComp.js,它使用商店状态(切换,平台)作为道具

class MyComp extends React.Component{

componentWillReceiveProps=(nextProps)=>{
      console.log(nextProps);
// this function is running only when the toggle is changing but not running when I change CheckList State.
}

 render()(<div></div>);
}
const mapStateToProps = (State) => {
        return {
 platforms:State.configuration.platforms!==undefined?State.configuration.platforms:[],//<-- Not triggered componentWillReceiveProps

toggle:State.toggle //<-- it triggered componentWillReceiveProps       
        }
    }
export default connect(mapStateToProps)(FeatureEvents);

...

这是来自商店的道具。在这种情况下,只有选定的属性正在更改。

platforms props : [
{
background: "https:image/file/59fd566788f3ac79a46ef20d/Android.png",
description: "Operating system used by various brands",
icon: "https://duj87royd3ze0.cloudfront.net/uploads/image/android.png",
id: "587f1e2f14c49f4aeb4d79d4",
price_multiplier: 1.5,
selected: true,
title: "Android",
week_multiplier: 1.1,
},
{..},
...
{..}
]

预期: 当我通过在CheckList中选中或取消选中“ selected ”属性值(是/否)时,我想在 MyComp 中触发componentWillReceiveProps。

当前状态: 反应不触发componentWillReceiveProps。因为React无法识别深度检查。

我该如何编码,以便React能够开始对即将到来的道具进行深入检查?

0 个答案:

没有答案