2017-10-11 1 views
0

Je souhaite envoyer une action de modification dans un formulaire.ReduxForm: envoi de l'action 'change' à l'intérieur du formulaire dans FormSection

Actuellement, je fais ceci dans myForm.jsx:

<FormSection name="content"> 
    <MyFormSection sectionName="content" formName="PanelForm"/> 
</FormSection> 

suivant ce dans MyFormSection.jsx

import { change } from 'redux-form'; 

// my component... 

const mapDispatchToProps = (dispatch, props) => ({ 
    change: (name, value) => dispatch(change(props.formName, props.sectionName+"."+name, value)), 
}) 

Je n'aime pas transmettre la forme à la fois le nom du forme et la section.

Quelqu'un aurait-il une meilleure façon de le faire?

Répondre

-1

Si vous êtes à l'intérieur d'un composant d'entrée Redux-Form vous pouvez utiliser this.props.input.onChange(value)

mais si vous êtes désireux juste pour créer une fonction qui lors de l'exécution des modifications que la valeur d'une forme qui n'est pas utilisé dans un Redux-Form Field Component, je pense que vous le faites de la bonne façon. Voici un autre exemple que j'ai fait juste pour que vous puissiez voir. Cette fonction était transmise à une forme enfantine à travers des accessoires pour une manière très spécifique de changer les valeurs dans mon formulaire de 'sorcier'.

const mapDispatchToProps = (dispatch) => { 
    return { 
    changeFormAction: (fieldName, value): void => { 
     dispatch({ 
     type: '@@redux-form/CHANGE', 
     meta: { 
      form: 'wizard', 
      field: `styles.[${fieldName}]`, 
      touch: false, 
      persistentSubmitErrors: false 
     }, 
     payload: value 
     }) 
    } 
    } 
}