Javascript 在react中更新状态
我正在使用react js。在存储在我的状态中的数组中,我在用户操作中更新该数组。然后我检查这个数组的和,如果它超过了我显示的错误。现在问题发生了,它显示了错误,但仍然更新了值Javascript 在react中更新状态,javascript,reactjs,Javascript,Reactjs,我正在使用react js。在存储在我的状态中的数组中,我在用户操作中更新该数组。然后我检查这个数组的和,如果它超过了我显示的错误。现在问题发生了,它显示了错误,但仍然更新了值 updateValuePercent = key => { let MixDataTemp = [...this.state.MixData]; let MixData = [...MixDataTemp]; let reduceValue = 0.005 / 4; MixData.map(da
updateValuePercent = key => {
let MixDataTemp = [...this.state.MixData];
let MixData = [...MixDataTemp];
let reduceValue = 0.005 / 4;
MixData.map(data => {
data.mix.map(name => {
if (name.pk === key.pk) {
name.volume = name.volume - 0.005;
} else {
name.volume = name.volume - reduceValue;
}
return name;
});
return data;
});
let nwSum = updatedData
.map(data => data.mix)
.map(data => data.volume)
.reduce((a, b) => a + b);
if (nwSum <= 1) {//condition to update the data
this.setState({
MixData: updatedData,
MixError: ''
});
} else {
this.setState({ MixError: 'values can not go beyond one' });//showing error on page still updating the state
}
}
updateValuePercent=key=>{
让MixDataTemp=[…this.state.MixData];
让MixData=[…MixDataTemp];
设还原值=0.005/4;
MixData.map(数据=>{
data.mix.map(name=>{
if(name.pk==key.pk){
name.volume=name.volume-0.005;
}否则{
name.volume=name.volume-reduceValue;
}
返回名称;
});
返回数据;
});
设nwSum=updatedata
.map(data=>data.mix)
.map(数据=>data.volume)
.减少((a,b)=>a+b);
如果(nwSum如果您真的不想显示状态中的MixData
值,我会明确告诉React它为null(或者某个值向用户表明它不能递增),即:
祝你好运!如果你真的不想显示状态中的MixData
值,我会明确告诉React它为null(或者某个值向用户表明它不能递增),即:
祝你好运!这真的让人困惑,你能澄清问题吗?更新代码让我知道它有意义这真的让人困惑,你能澄清问题吗?更新代码让我知道它有意义但有一件事状态不应该用新值更新,对吗?因为我没有根据你的代码更新状态您没有为MixData
提供值,因为您没有在this.setState
中提供值。但是,如果您可以提供一个fiddle,则调试会更容易。但是有一件事state不应该用新值更新,对吗?因为我没有根据您的代码更新它state
不应该为MixData
提供值se您没有在this.setState
中提供一个。但是,如果您可以提供一个小提琴,那么调试会更容易。
if (nwSum <= 1) {
this.setState({
MixData: updatedData,
MixError: ''
});
} else {
this.setState({
MixData: null,
MixError: 'values can not go beyond one'
});
}
this.setState({
...this.state,
MixError: 'values can not go beyond one'
});