Tengo un formulario redux con un botón de envío y un botón html normal. No quiero que se valide el formulario cuando se presiona el botón normal. Pero parece que el formulario siempre se valida una vez y luego, cuando hago clic en el botón nuevamente, se ejecuta el clic en el botón. ¿Cómo evito esto?
Repliqué el mismo problema con el mismo formulario. Por ejemplo, si va a http://redux-form.com/6.4.3/examples/syncValidation/ , ingrese 4 en el campo de edad y haga clic en borrar valores. La primera vez que la validación se activa y detiene la acción del botón. La segunda vez que funciona la acción del botón, es decir, los valores del formulario se borran.
El ejemplo al que se vincula tiene ese comportamiento porque, de forma predeterminada, Redux Form llamará a la función de validación para los campos tocados en un evento de desenfoque. El hecho de que esté haciendo clic en un botón es irrelevante: podría hacer clic en cualquier elemento o en cualquier lugar de la página y obtendría ese comportamiento.
La única forma real de detener este comportamiento es evitar que Redux Form toque sus campos en un evento de desenfoque. Puede hacer esto configurando touchOnBlur
en false
en el objeto de configuración Redux Form.
export default reduxForm({ form: 'myForm', touchOnBlur: false })(MyForm);
Agregue type="button" para evitar que el botón envíe el formulario. Si no proporciona ningún tipo, considerará enviarlo.