Поле удаления Redux-Form при действии ИЗМЕНИТЬ

Я пытаюсь заполучить поле в моей форме Redux и отправить на нем действие ИЗМЕНЕНИЯ значений формы Redux, чтобы установить значение поля в пустую строку (''). Поле глубоко вложено в форму. Путь к полю (называемому campus) в форме выглядит так:

state.form.MY_FORM.values.assets[0].locations[1].location.campus

Вот действие, которое я пытаюсь отправить в этом поле:

dispatch(change('MY_FORM', 'state.form.MY_FORM.values.assets[0].locations[1].location.campus', ''))

change здесь соответствует действию CHANGE Redux-Form (которое используется для изменения значений полей).

Моя проблема в том, что Redux Form, кажется, пытается полностью удалить поле campus из состояния поля, когда отправляется действие, указанное выше.

Предыдущее состояние, действие и следующее состояние выглядят так:

Предыдущее состояние: state.form.MY_FORM.values.assets[0].locations[1].location.campus: 'Some Campus' state.form.MY_FORM.values.assets[0].locations[1].location.building: 'Some Building'

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

action: meta: field: "assets[0].locations[1].location.campus" form: "MY_FORM" persistentSubmitErrors: undefined touch: undefined payload: "" type: "@@redux-form/CHANGE"

Следующее состояние:

state.form.MY_FORM.values.assets[0].locations[1].location.building: 'Some Building'

Как видите, в следующем состоянии поле campus вообще отсутствует. Кроме того, полезной нагрузкой действия CHANGE является "", поэтому я не уверен, почему он пытается что-то сделать, кроме простого обновления значения поля, как должно.

Есть ли известная ошибка Redux Form, которая пытается избавиться от поля, если значение поля установлено на пустую строку? Если нет, какие-либо другие предложения о том, что может быть причиной этого?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
1 112
1

Ответы 1

Взглянув на реализация редуктораredux-form, вы обнаружите, что редуктор проверяет, является ли payload действия CHANGE пустой строкой, и удаляет ценить этого поля из хранилища:

if (initial === undefined && payload === '') {
    result = deleteInWithCleanUp(result, `values.${field}`)
} 

Стоит упомянуть, что само поле не удаляется - вы все еще можете найти его внутри объекта registeredFields внутри состояния.

Другие вопросы по теме