首页 > 解决方案 > 如何使用useState在对象中只设置一个属性?

问题描述

我有一个对象作为反应状态:

{course: {…}, userIDs: Array(2), usersNumber: 2}

course这样的对象在哪里:

price : 100
promotion : null
comments : []

我想要做的是向comments数组中添加一个新对象并保持所有其他属性不变。怎么办useState

标签: reactjsuse-state

解决方案


setState函数还接受一个接收当前状态的函数。所以你可以做这样的事情:

setData(data => {
  const updatedData = { ...data };
  updatedData.course.concat(newComment);
  return updatedData;
});

首先,复制data变量,以免更改现有引用。然后将新评论连接到该course属性。最后,返回新的数据对象。


推荐阅读