如何仅更改包含对象的 React useState 中的一个值,并为其余值分配不同的值?

avy*_*ign 3 javascript state typescript reactjs use-state

我有以下状态:

const [clickColumn, setClickColumn] = useState({
    name: 0,
    tasks: 0,
    partner: 0,
    riskFactor: 0,
    legalForm: 0,
    foundationYear: 0
  })
Run Code Online (Sandbox Code Playgroud)

现在,例如,我只想将 name 设置为 2,其余设置为 1。但我不想这样写:setClickColumn({ name: 2, tasks: 1, riskFactor: 1, partner: 1, legalForm: 1, foundationYear: 1 });

我怎样才能让它更短?

小智 12

您可以使用扩展运算符来使其变得简单:

setClickColumn({ ...clickColumn, name: 2 });
Run Code Online (Sandbox Code Playgroud)

它展开现有对象 clickColumn 并向其添加名称:2,覆盖默认值。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax