@vadimparinov

Можно ли использовать slice в React?

Ответьте пожалуйста на вопрос)
Корректно ли использовать slice для изменения стейта в реакте ? На некоторых ресурсах читал что это мутирует стейт , но по идее он возвращает новый массив не изменяя исходный
Подскажите пожалуйста правильный ответ )
  • Вопрос задан
  • 254 просмотра
Решения вопроса 2
yarkov
@yarkov
Помог ответ? Отметь решением.
В доке русским языком написано. Ничего не мутируется.
Ответ написан
Комментировать
GreyCrew
@GreyCrew
Full-stack developer
Вполне можете использовать, но не забывайте, что slice, что spread operator они делают копию только плоского объекта(массива).
const arr = [0, 1, [2,3]]
const newArr = arr. slice(0)
newArr[2][0] = 'new data'
console.log(arr[2][0]) // new data

Если вам нужно избегать мутации для глубокого объекта, то используется либо JSON.stringify, JSON.parse, либо сloneDeep из lodash. Или сами можете написать функцию обхода объекта.
Есть еще специализированные библиотеки immutable(deprecated) или immerjs.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы