У меня есть небольшая таблица данных, которая предварительно заполняется вызовом API при загрузке страницы. У каждой строки в таблице есть имя объекта и значение Enabled
, полученное из вызова API. Если Enabled
== true, флажок отображается как отмеченный.
У меня есть пара флажков, которые выделены серым цветом из-за условия, при котором его вообще нельзя изменить, поэтому в поле есть атрибут readOnly.
На мой вопрос, для краткости я сжал список объектов показан в таблице, но на самом деле количество объектов может составлять X
. В моей функции onSubmit
я хочу отправлять имя объекта и значение enabled
только в том случае, если они были выбраны / отменены, вместо отправки всего списка при каждом нажатии кнопки отправки.
В идеале мне нужна форма отправленные данные выглядят так:
{
facilityName: "Backup Restore",
enabled: true
}
Теперь я смог выделить просто значение facilityName
и enabled
, но я не могу понять, включать ли только те значения, которые были изменены в форма. Как я уже говорил выше, не каждое имя объекта и включенная клавиша / значение должны отправляться при каждом нажатии кнопки «Отправить», только те, которые были изменены.
Это то, что у меня есть в настоящее время (и это можно увидеть на песочница ниже) в моей функции onSubmit
<Formik
enableReinitialize
initialValues={{
facilities: loggingFacilities
}}
onSubmit={async (values, { setSubmitting }) => {
alert(JSON.stringify(values, null, 2));
try {
setLoggingFacilities(values.facilities);
const valuesToSend = values.facilities.map(facility => {
return {
key: facility.facilityName,
value: facility.enabled
};
});
.....
У меня есть коды и коробка здесь