Запросы JSON PATCH: только грязные поля и отправка с использованием JSON PATCH в создателе действий - PullRequest
0 голосов
/ 26 февраля 2019

Я работаю над приложением React с Formik Forms и Redux для управления состоянием.Я хотел бы дать пользователям возможность редактировать свои контактные данные в форме Formik, отправлять в наш API, который нарушает запросы PATCH.

В настоящее время мы сначала разрешаем пользователям редактировать все поля в форме Formik и отправлять,Предполагая, что в форме есть начальные значения, мне было интересно, существует ли чистый способ использования JSON-патча для отправки запросов PATCH только на только измененные значения .Если нет, то есть ли способ отправить значения формы без большого вызова, как показано ниже, с массивом объектов с кучей замен:

Пример полезной нагрузки создателя действия:

const editData = {
    metadata: {
      lastUpdated: `${updatedTime}`,
    },

    patch: [
      {
        op: 'replace',
        path: '/name/firstName',
        value: `${formValues.firstName}`,
      },
      {
        op: 'replace',
        path: '/name/lastName',
        value: `${formValues.lastName}`,
      },
      { op: 'replace', path: '/type', value: `${formValues.type}` },
      { op: 'replace', path: '/username', value: `${formValues.username}` },
      { op: 'replace', path: '/email', value: `${formValues.email}` },
      { op: 'replace', path: '/groups', value: formValues.groups },
    ],
  };

Я не смог найти шаблон или эффективное решение для этого.Возможно какой-нибудь простой генератор ES6-7?Не знаю ...

Обновление : я смог получить некоторую информацию о своем исследовании, что использование функции diff для initialValues против values в onSubmit может дать вам толькозначения, которые вы должны представить.Это будет работать для обычного запроса HTTP PATCH, но с использованием JSON Patch http://jsonpatch.com/, Я до сих пор не уверен, как просто отправлять грязные поля - особенно если есть вложенные массивы или значения объектов.

...