使用对象反应本机 setState 问题

React Native setState issue using an Object

我不明白为什么我的 setQuantity 不使用 setState 更新 "quantity" 变量。 在函数内部更新对象,但不更新变量 "quantity".

const [quantity, setQuantity] = useState({breakfast: 0, lunch: 0, dinner: 0});

const onChangeQuantity = (value, type) => {
    let qty = quantity;
    qty[type] = value;

    //console.log(qty);  
    //{"breakfast": 0, "dinner": 0, "lunch": 6}

    setQuantity(qty);
  };

控制台显示上次更改为 6 份午餐。我在函数外有一个 "quantity" 的控制台来查看是否有变化,但只在加载屏幕时显示初始值 (0, 0, 0)。

你能帮我解决这个问题吗?

谢谢。

同样的老错误,你正在改变状态,不要那样做。始终设置新引用以触发具有更新值的渲染

const [quantity, setQuantity] = useState({breakfast: 0, lunch: 0, dinner: 0});

const onChangeQuantity = (value, type) => {
    let qty = { ... quantity }; // make a copy
    qty[type] = value;
    setQuantity(qty);
};