2017-10-11 1 views
0

Ich möchte eine Änderung Aktion in einem FormSection versenden.ReduxForm: 'Änderung' Aktion innerhalb Formular in FormSection

Derzeit mache ich dies in myForm.jsx:

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

im Anschluss an diese in MyFormSection.jsx

import { change } from 'redux-form'; 

// my component... 

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

Ich mag, um das Formular nicht überliefern sowohl den Namen des Form und der Abschnitt.

Hätte jemand einen besseren Weg, dies zu tun?

Antwort

-1

Wenn Sie sich in einer Redux-Formular-Eingabekomponente sind, können Sie this.props.input.onChange(value)

verwenden, aber wenn Sie nur wollen, um eine Funktion zu erstellen, dass bei Änderungen ausgeführt, dass Wert von einer Form, die nicht in einer Redux-Form verwendet wird, Feldkomponente, ich denke du machst es richtig. Hier ist ein weiteres Beispiel, das ich gerade gemacht habe, damit Sie sehen können. Diese Funktion wurde durch Requisiten für eine ganz bestimmte Art, Werte in meiner "Zauberer" -Form zu ändern, an ein Kind-Formular weitergegeben.

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 
     }) 
    } 
    } 
}