2015-12-02 3 views
7

Sto creando un componente personalizzato per il mio modulo.redux-form - Imposta il valore per un campo tramite codice?

Cosa voglio: dopo aver fatto clic su un determinato percorso, nel gestore onClick, posso impostare il valore corrispondente per il campo modulo.

Come fare?

mia soluzione attuale:

_onClick(value, evt) { 
    const {field, dispatch} = this.props 
    if(dispatch){ 
    dispatch({type: "redux-form/CHANGE", field: field.name, value: value, touch: false, form: field.form}) 
    } 
} 

non funziona ancora .. ma anche se funziona, sento che questo è tipo di hack.

Qualche soluzione migliore?

Nota: ho anche chiesto a questa domanda nella pagina problema per Redux-forma: https://github.com/erikras/redux-form/issues/369

+0

Sto votando per chiudere questa domanda perché è stata risolta – songyy

+0

Sto votando per chiudere questo domanda come off-topic perché è stata risolta. – songyy

+0

Dovresti taggare una domanda come off-topic perché è stata risolta. Non è così che dovrebbe essere usato "fuori tema". Questo non dovrebbe essere chiuso. – Vadorequest

risposta

3

Problema risolto. Si scopre che dovrei fare il mio componente compatibile con Redux-Form, di riferimento: http://erikras.github.io/redux-form/#/faq/custom-component?_k=qnjmi9

+0

Suggerisco di chiudere questo problema se è * risolto *. – jpierson

+1

@jpierson OK sicuro :) – songyy

+0

@jpierson Sto ottenendo un upvote e la mia richiesta vicina non si è verificata. Penso che per lo scopo di riferimento per i futuri sviluppatori, terrò solo la domanda. (sì, e sono consapevole che c'è un pulsante 'cancella') – songyy

4

Redux Form 6

All'interno della componente form utilizzando props

this.props.change('field_name', 'value') 

Fuori dalla componente form utilizzando Action Creators

import { change } from 'redux-form' 

dispatch(change('form_name', 'field_name', 'value')) 
+0

Fantastico, funziona! Grazie! –