Я работаю над тремя свойствами объекта JSON, который возвращает логические значения.
updateChange=(value) =>{
//Making copy of existing json Object
let newState = JSON.parse(JSON.stringify(this.state.mainValue));
// chaning property of cellular over here
newState.cellular = value;
console.log(newState);
this.setState({mainValue:newState});
//I tried setState in many different ways. But Component is not changing state value
console.log(this.state.mainValue)
};
Я обнаружил, почему это происходит.Я использую getDerivedStateFromProps
в этом компоненте, чтобы посмотреть изменения, внесенные родителем для обновления значений.Это позволяет избежать изменений, внесенных в состояние ребенка.Поэтому я создал состояние под названием «предыдущее состояние», чтобы сравнить предыдущие реквизиты и представить реквизиты от родителя для визуализации.Это позволяет избежать обновления компонента при изменении значений локального состояния.
static getDerivedStateFromProps(propsnow,state){
if(state.previous !== propsnow.detailSwitches){
return{
previous :propsnow.detailSwitches,
cellular: propsnow.detailSwitches.cellular,
wifi1: propsnow.detailSwitches.wifi1,
wifi2: propsnow.detailSwitches.wifi2
};
}
return null;
}
Любые примеры или рекомендации могут быть полезны.Спасибо