#javascript #arrays #reactjs #state
Вопрос:
Мое состояние выглядит примерно так:
const [state, setState] = useState([
{ id: uuidv4(), myList: ["listItem1", "listItem2"] }
{ id: uuidv4(), myList: ["listItem1"] }
])
Как я могу добавить значение myList
к определенному объекту, который я хочу добавить?
Комментарии:
1. Как вы будете идентифицировать конкретный объект?
Ответ №1:
Во — первых, поскольку вам нужно вычислить uuid для генерации идентификаторов, я бы использовал функцию для инициализации состояния :
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);
}