使用对象反应本机 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);
};
我不明白为什么我的 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);
};