Задать вопрос
@TurnerIT

Что возвращает return?

Добрый вечер программисты.
Я только что тренировался в реакте. и у меня возникла ситуация когда после обработки нужно было вернуть объект для рендеринга.
В состояние данные попадают после деструктуризации в таком вот виде :
this.setState(({ data }) => {
       const idx = data.findIndex((el) => el.id === id);
       const before = data.slice(0, idx);
       const after = data.slice(idx + 1);
       const newArray = [...before, ...after]
        return {
            data: newArray
        }
      } )

return возвращает вот это todoData: newArray
Я не могу понять почему именно такой синтаксис?
В начале я написал просто
return newArray
выдало ошибку. Потом поумал что return должен вернуть объект и написал так
return {
            data = newArray
        }

Так тоже не сработало....почему нужно возвращать именно в таком виде data: newArray ?
Спасибо за ваши ответы.
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Функция передаваемая первым аргументом в setState в классовых компонентах должна возвращать объект, обновляющий какие-либо свойства объекта состояния. В вашем случае это объект содержащий свойство data. У вас в примерах, в первом случае возвращался массив, во втором был невалидный код.

Ваш код обновления состояния можно сократить до:
this.setState(state => ({
  data: state.data.filter(el => el.id !== id), 
}));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы