[英]React hooks: How do I update state on a nested object with useState()?
[英]React, how do I update just one property in an object that uses the useState hook?
在我的代码中,我目前有一个 state ,如下所示:
const [caclulatorObj, setCalculatorObj] = useState({
total: '0',
next: null,
operator: null
});
function clickHandler(isOperator, value) {
setCalculatorObj(calculate(caclulatorObj, value));
}
如上所述,计算 function 返回 object。 我的问题是,在更新 state 时,我是否总是必须设置完整的 object? 例如,在我calculate
function 时,我可能只更新next
变量:
return {
total: calculatorObj.total,
next: someNewValue,
operator: calculatorObj.operator
}
我可以直接退货吗?:
return { next: someNewValue };
还是我总是需要退回完整的 object?
您需要像这样设置 state:
function clickHandler(isOperator, key, value) {
setCalculatorObj(calculate(caclulatorObj, { ...calculatorObj, [key]: value}));
}
当您调用它时,传递您要修改的密钥:
onClick={(e) => clickHandler(false, 'next', e.target.value )}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.