Использование оператора спреда на массивах
Одним из решений ES6, чтобы помочь обеспечить неизменность состояния в Redux, является оператор с расширением: ...
Оператор распространения имеет множество приложений, один из которых хорошо подходит для предыдущего вызова создания нового массива из существующего массива. Это относительно новый, но обычно используемый синтаксис. Например, если у вас есть массив myArray
и напишите: let newArray = [...myArray];
newArray
теперь является клоном myArray
. Оба массива все еще существуют отдельно в памяти. Если вы выполняете мутацию типа newArray.push(5)
, myArray
не изменяется. ...
эффективно распространяет значения в myArray
в новый массив. Чтобы клонировать массив, но добавляя дополнительные значения в новый массив, вы можете написать [...myArray, 'new value']
. Это вернет новый массив, состоящий из значений в myArray
и строку 'new value'
в качестве последнего значения. Синтаксис распространения может использоваться несколько раз в составе массива, как это, но важно отметить, что он делает только мелкую копию массива. То есть он обеспечивает только неизменные операции массива для одномерных массивов.
Используйте оператор spread, чтобы вернуть новую копию состояния при добавлении дела.