return {
...state,
targetsArray: state.targetsArray.filter((task) => task.id !== action.payload.uId)
}
Здесь как раз всё правильно. Иммутабельность не предполагает, что вы будете клонировать всё до последнего потомка. Вы возвращаете новый массив, чтобы компонент, который от него зависит, понял, что надо перерендериться. А его дочерние компоненты перерендериваться уже не будут, если их конкретный объект никак не изменился.stateCopy.targetsArray[0] === state.targetsArray[0]
Вот так уже работаетНу где же оно работает, если у вас 3 раза вывелось undefined и один раз массив? Просто вы перестаёте обращаться к несуществующему свойству и код не падает на первой же итерации. Однако никакой массив ничем не становится, такое значение туда и пришло. Ещё один вариант - this в момент исполнения указывает уже не на объект класса.
(this.listeners || []).forEach(...)
document.querySelector("#section__gallery-select-category option[value='0']").remove();
$user->articles->each->append('short_description')
$user['articles'] = $user->articles;