此函数当前返回总分,但我尝试仅获取检查值(分数)的总和。因此,每次用户选中复选框时,该函数将返回分数的总和。
"Score“是表中三列之一。我使用复选框来选择。
calculateTotal=(e)=> {
const { input, checked, type} = e.target;
let sumVal= 0;
this.props.items.forEach((item, i)=> {
if(checked === true){
( sumVal += item.score)
}
})
this.setState(sumVal => sumVal)
console.log(sumVal);
document.getElementById("val").innerHTML = "Sum Value =" + sumVal;
}发布于 2020-04-25 11:28:11
当您在this.setState中给出函数时,函数将获取前一个状态作为参数。您返回的本质上是相同的状态,因此没有任何更改。
calculateTotal=(e)=> {
const { input, checked, type} = e.target;
let sumVal= 0;
this.props.items.forEach((item, i)=> {
if(checked) sumVal += item.score
})
this.setState(prevState=>({...prevState, sumVal}));
// this.setState({sumVal}) ; // also works
console.log(sumVal);
document.getElementById("val").innerHTML = "Sum Value =" + sumVal;
}
如果我遗漏了什么,请告诉我。
https://stackoverflow.com/questions/61420231
复制相似问题