更新其他对象内部对象的状态,React js

Update state in object inside other object, React js

好吧,我在另一个对象中有一个对象,我想在第二个对象中更新一个 属性 或更多的状态,这是状态 :

const [products, setProducts] = useState({
  name: '',
  type: '',
  price: '',
  sizes: { s: false, m: false, l: false, xl: false }
});

我怎样才能访问第二个对象中的 属性 我已经试过了,但它不起作用:

setProducts({...products, sizes : {...sizes, sizes[m] : true}}) // this not working

有什么办法吗?

试试这个。

setProducts({ ...products, sizes: { ...products.sizes, m: true } });

你可以试试:

setProducts(prevState=> ({ ...prevState, sizes: { ...prevState.sizes, m: true } }));

这也可以防止关闭时出现问题

如果您想使用 truefalse 更新其他尺寸,您可以将其抽象为

const updateSize = (field, value) => {
  setProducts(prevState=> ({ 
    ...prevState,
    sizes: { ...prevState.sizes, [field]: value }
  }));
}