связующее радио поле в редукс-форме - PullRequest
0 голосов
/ 14 мая 2019

Я использую Redux-Form v8.1.0. В БД есть булево поле IsCompulsary. Как сделать так, чтобы «Да» проверялось, если оно истинно, и «Нет» проверялось, если оно ложно?

    <div>
      <label>
        <Field
          name="IsCompulsary"
          component="input"
          type="radio"              
        />{' '}
        Yes
      </label>
      <label>
        <Field
          name="IsCompulsary"
          component="input"
          type="radio"             
        />{' '}
        No
      </label>
    </div>

Обновление:

В нижней части компонента:

SchoolSettings = reduxForm({
  form: "schoolSettingsForm", // a unique identifier for this form
  enableReinitialize: true
})(SchoolSettings);
 SchoolSettings = connect(
  state => ({
  initialValues: state.schoolSettings.data // pull initial values from account reducer
})   
)(SchoolSettings);

export default SchoolSettings;

Данные:

{Id: 1, Name: "Our School", IsCompulsary: true}

1 Ответ

1 голос
/ 15 мая 2019

Вам необходимо добавить поля значений к вашим радиовходам и нормализовать их значения, чтобы они преобразовывались в логические значения, прежде чем обновлять хранилище:

<div>
  <label>
    <Field
      name="IsCompulsary"
      component="input"
      type="radio"
      value={true} 
      normalize={value => value === 'true'}           
    />{' '}
    Yes
  </label>
  <label>
    <Field
      name="IsCompulsary"
      component="input"
      type="radio"    
      value={false}   
      normalize={value => value === 'true'}                    
    />{' '}
    No
  </label>
</div>

Проверка песочницы https://codesandbox.io/embed/serene-banach-nviml

...