我试图将json对象推入过量的useState。而我console.log它,我得到了我的默认数据完美。当我试图把新数据推到旧数据上的时候。我的新数据没有被推送。
const [shopCart, setShopCart] = useState({Description:"Apple"});
const disptechProductUpdate = (prod: any) => {
console.log(prod)
let updatedValue = {};
updatedValue = prod;
console.log(updatedValue)
setShopCart(shopCart => ({
...shopCart,
...updatedValue
}));
console.log(shopCart)
}
<Button onChange={(e) => disptechProductUpdate({ Description: "Fruits" })}>Print</Button>
控制台输出
{Description: 'Fruits'}
{Description: 'Fruits'}
{Description: 'Apple'}
Replace
setShopCart(shopCart => ({
...shopCart,
...updatedValue
}));
setShopCart({
...shopCart,
...updatedValue
});
(你正在用一个返回一个对象的函数替换你的对象,而不是用新对象替换它)