Форма React final запускает handleSubmit после первоначального рендеринга

У меня есть только компонент Switch в моей окончательной форме реакции. Это выглядит так:

<Form
  onSubmit={onSubmit}
  initialValues={initialValues}
  render={({ handleSubmit }) => (
    <form onSubmit={handleSubmit}>
      <Field name="booleanValue" component={Switch} onChange={handleSubmit}/> //triggers when receives value
    </form>
   )
  }
/>

Я хочу запускать handleSubmit только после изменений, внесенных пользователем, а не при первом рендеринге формы.


person Alexander Panteleev    schedule 22.01.2020    source источник


Ответы (1)


<Field/> не имеет onChange опоры, как вы пытаетесь. Что-то вроде этого могло сработать.

import { OnChange } from 'react-final-form-listeners'

...

<Form
  onSubmit={onSubmit}
  initialValues={initialValues}
  render={({ handleSubmit, form }) => (
    <form onSubmit={handleSubmit}>
      <Field name="booleanValue" component={Switch}/>
      <OnChange name="booleanValue">
        {(value, previousValue) => {
          form.submit()
        }}
      </OnChange>
    </form>
   )
  }
/>

P.S. Я надеюсь, что ваш Switch компонент знает, как получить свои value и onChange из input опоры.

Надеюсь, это поможет!

person Erik R.    schedule 24.01.2020