![](/img/trans.png)
[英]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.