首页 > 解决方案 > 使用 React Hooks 更新嵌套对象中的值

问题描述

我的愿望是更新shoppingCart[0]里面的产品 状态:
const [authenticatedUser, setAuthenticatedUser] = useContext<any>(UserContext)

console.log(authenticatedUser)显示以下内容: 在此处输入图像描述

我尝试使用以下代码更新产品数组的值:
setAuthenticatedUser({ ...authenticatedUser, products: ['new item'] }) 但它在authenticatedUser 中创建了一个新的产品数组。

如何更新里面的产品数组authenticatedUser.shoppingCart[0].products

数据:

const [authenticatedUser, setAuthenticatedUser] = useState(
   {
    authenticated: true,
    id: "3i4jijrifjifrjifr",
    shoppingCart: [{
        createdAt: "2021-01-29T10:14:21.253Z",
        products: ['this is the array i want to update', '2', '3']
    }]
   }
)

标签: reactjs

解决方案


尝试这个:

setAuthenticatedUser({ ...authenticatedUser, shoppingCart:[{...authenticatedUser.shoppingCart[0],products:['newItem']}] })

推荐阅读