Учитывая такое состояние:
state = {
things: [
{ id: 'a1', name: 'thing 1' },
{ id: 'a2', name: 'thing 2' },
],
};
Как создать новое состояние, в котором удаляется идентификатор "a1"? Достаточно легко выдвинуть новые предметы:
return state.set(state.get('things').push(newThing));
Но я не могу понять, как искать и удалять объект по свойству id
. Я попробовал это:
return state.set('tracks',
state.get('tracks').delete(
state.get('tracks').findIndex(x => x.get('id') === 'a2')
)
)
Но это кажется беспорядочным, плюс он работает только, если элемент найден, потому что если findIndex
возвращает -1
, это допустимое значение для delete
.