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

Как в React отправлять стейт на сервер при каждом его изменении?

Скажите. Я хочу отправлять стейт на сервер при каждом его изменении. Вернее не весь стейт, а только свойства которые изменились. Скажите, как это реализовать?
  • Вопрос задан
  • 106 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Специализация Frontend-разработчик
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
TMProject
@TMProject
Frontend developer React/Redux
//Перед обновление стейта сохраняешь текущую версию
const oldState = { ...state }
//Обновляешь стейт
setState({ foo: 'bar' });

//Этот код нужно выполнять в юзефект с депсами стейта
//Это массив измененных свойств 
const changedProperties = {};
for (const key in state) {
  if (state.hasOwnProperty(key) && oldState[key] !== state[key]) {
    changedProperties[key] = state[key];
  }
}

//Проверяем если были обновления и отправляем
if (Object.keys(changedProperties).length > 0) {
  fetch('/endpoint', {
    method: 'POST',
    body: JSON.stringify(changedProperties),
    headers: {
      'Content-Type': 'application/json'
    }
  }).then((response) => {
    if (response) {
      console.log('Данные успешно обновлены на сервере');
    } else {
      console.log('Не удалось обновить данные на сервере');
      // В случае ошибки апдейтп можно откатить  стейт
      setState(oldState);
  });
}


По коду сам смотри куда тебе проще запихнуть
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽