React,如何更新使用useState挂钩的对象中的一个属性?

时间:2020-04-12 12:50:03

标签: javascript reactjs

在我的代码中,我目前的状态如下:

const [caclulatorObj, setCalculatorObj] = useState({
  total: '0',
  next: null,
  operator: null
});

function clickHandler(isOperator, value) {
  setCalculatorObj(calculate(caclulatorObj, value));
}

calculate函数如上所述返回一个对象。我的问题是,更新状态时是否总是必须设置一个完整的对象?例如,在我的calculate函数中,也许我只更新next变量:

return {
  total: calculatorObj.total,
  next: someNewValue,
  operator: calculatorObj.operator
}

我可以代替它吗?:

return { next: someNewValue };

还是我总是需要返回完整的对象?

1 个答案:

答案 0 :(得分:1)

您需要像这样设置状态:

onClick={(e) => clickHandler(false, 'next', e.target.value )}

当您调用它时,传递您想要修改的密钥:

{{1}}