反应:附加到状态数组对象的数组

时间:2021-06-27 09:40:44

标签: javascript arrays reactjs state

我的状态如下所示:

const [state, setState] = useState([
 { id: uuidv4(), myList: ["listItem1", "listItem2"] }
 { id: uuidv4(), myList: ["listItem1"] }
])

如何将 myList 的值添加到我想要添加的特定对象?

1 个答案:

答案 0 :(得分:0)

首先,由于您需要计算 uuid 以生成 id,我将使用一个函数来初始化状态:

const [state, setState] = useState(() => [
 { id: uuidv4(), myList: ["listItem1", "listItem2"] }
 { id: uuidv4(), myList: ["listItem1"] }
])

然后,要将项目添加到 myList 数组,我建议您添加如下函数:

function addItem(id, item) {
  const newState = state.map(el => 
      el.id === id ? {...el, myList: [...el.myList, item]} : el
  );
  setState(newState);
}