Очистка значений полей формы Redux

Я использую избыточность, чтобы скрывать и показывать компоненты на основе значения. Когда я переключаюсь между параметрами, я хотел бы очистить значения.

Как удалить значения из состояния при переключении между скрытыми и отображаемыми полями?

Каков рекомендуемый способ проверки каждого поля?

Можно ли полностью убрать поле из состояния?

<div>
    <form>
      <Fields
       component={RadioButtonGroupField}
       names={['radioButtonGroup', 'nameTextField', 'nickNameTextField']}
      />
    </ form>
</div>

function RadioButtonGroupField(fields) {
    return(
      <div>
        <RadioButtonGroupComponent
          {...fields.radioButtonGroup.input}
          {...fields.radioButtonGroup.meta}
        />
        {
          (fields.radioButtonGroup.input.value === 'name' ||
          fields.radioButtonGroup.input.value === 'both') &&
          <NameTextFieldComponent
            {...fields.radioButtonGroup.input}
            {...fields.radioButtonGroup.meta}
          />
        }
        {
          (fields.radioButtonGroup.input.value === 'nickname' ||
          fields.radioButtonGroup.input.value === 'both') &&
           <NicknameTextFieldComponent
            {...fields.radioButtonGroup.input}
            {...fields.radioButtonGroup.meta}
          />
        }
      </div>
     );
  }

person eNddy    schedule 29.03.2017    source источник


Ответы (1)


Почему это имеет значение, если другое значение находится в состоянии? Похоже, вы могли бы после отправки посмотреть на значение вашего радио, чтобы определить, какие из других значений использовать.

Однако, чтобы ответить на ваш вопрос, вы могли бы потенциально поместить прослушиватель onChange в свое поле радио и (не забыв вызвать fields.radioButtonGroup.input.onChange()) отправить действие change(value==='name' ? 'nickname' : 'name', null), чтобы уничтожить значение во входных данных, которые вы хотите игнорировать.

person Erik R.    schedule 30.03.2017
comment
И последнее, как лучше всего добавить проверку для каждого поля? - person eNddy; 05.04.2017
comment
Вы можете либо добавить функцию проверки на уровне поля, либо предоставить функцию проверки для всей записи. - person Erik R.; 07.04.2017
comment
Я не понимаю, как добавить field-level validation function к Fields? @erik-r, не могли бы вы взглянуть на комментарии из stackoverflow.com/questions/43218272/ . Не могли бы вы поделиться своими мыслями о добавлении проверок в Fields? - person eNddy; 07.04.2017
comment
Ой, вы правы. Для Fields нет проверки на уровне поля. Для этого вам нужно будет проверить всю запись. - person Erik R.; 07.04.2017
comment
Считаете ли вы, что это должна быть функция, поскольку есть несколько способов проверить Features, как указано здесь @dpwrussell: stackoverflow.com/questions/43218272/. Я понимаю, что вы можете быть заняты, поэтому, если вам нужна помощь, я буду более чем счастлив помочь. - person eNddy; 08.04.2017