1

Also auf diese habe ich bisher gemacht und weg für ein paar Tage jetzt ...etwas falsch mit redux-Form in Reaktion india

Problem ist, dass ich nicht in der Lage bin aktuellen Werte drucken Vorgefüllte Form in React-native Redox-Form.

Ich habe viele Möglichkeiten ausprobiert, um einfach Werte auszudrucken, aber sie finden sie als "undefiniert" und das ist es.

Hier ist ein Code. Diese ist, wie ich Form angezeigt werden:

render(){ 
const {data} = this.props 
return(
    <View> 
    <ScrollView style={styles.container}> 
     <QuestionnaireItem title={Strings.en.fewWords}> 
     <Field name={"fewWords"} 
     component={TextInput} 
     style={styles.fewWords} 
     defaultValue={data.few_words} 
     multiline={true}/> 
     </QuestionnaireItem> 
<!-- ... --> 

Dies ist, wie Form umzusetzen und versuchen, es zu drucken, state-to-Requisiten Mapper:

let QuestionnaireFormRF = reduxForm({ 
    form: 'QuestionnaireForm' 
})(QuestionnaireFormComponent); 

function mapStateToProps(state) { 
    const selector = formValueSelector('QuestionnaireForm') 
    const { 
    fewWords, 
    familyState, 
    kidsQuantity 
    } = selector(state, "fewWords", "familyState", "kidsQuantity") 

    console.log(">>> " + fewWords) 

    return { 
    fewWords, 
    familyState, 
    kidsQuantity 
    } 
} 

QuestionnaireFormRF = connect(mapStateToProps)(QuestionnaireFormRF) 

export default QuestionnaireFormRF 

Und wenn es hilft, das ist, wie dies Komponente wird aufgerufen.

const tabArray = [ 
    { 
    title: Strings.en.questionnaire, 
    component: QuestionnaireForm, 
    props: {} 
    }, 
    { 
    title: Strings.en.questionnaireForPartner, 
    component: QuestionnaireForPartnerForm, 
    props: {} 
    } 
] 
export default class QuestionnaireScreen extends Component { 
    constructor(props){ 
    super(props) 
    } 

    componentWillMount(){ 
    tabArray[0].props = { data: this.props.data, navigator: this.props.navigator } 
    tabArray[1].props = { data: this.props.data, navigator: this.props.navigator} 
    } 

    render(){ 
    return(
     <TopTabsMulti tabs={tabArray} openTab={0}/> 
    ) 
    } 

} 

Ich war ein bisschen besorgt, dass über Implementierung kann mit Redux-Architektur durcheinander bringen, aber bisher keine solide Beweise gefunden.

Also, wie gesagt, ich bin nicht in der Lage, aktuelle Werte in irgendeiner Weise abrufen und dass console.log ">>> undefined" druckt, obwohl in App-Werte ordnungsgemäß gefüllt sind, und sogar ordnungsgemäß von Requisiten abgerufen.

+0

Woher kommen diese vorgefüllten Werte? Es fühlt sich so an, als ob etwas Code fehlen könnte, denn aus dem, was Sie dort haben, werden die Selektoren immer leer zurückkehren, bis Sie die Werte auf der Komponente selbst ausfüllen. –

+0

Werte werden von der übergeordneten Komponente weitergegeben, die wiederum von redux verwaltet wird. Implementierung erfolgt nach wix-Navigationslösung: react-native-navigation. Der Selektor kehrt tatsächlich leer zurück, auch wenn Werte mit temperiert werden. zum Beispiel tippen Sie etwas und rendern neu – Medardas

Antwort

0

Anscheinend können Sie Wert Einrichtung mit Aufruf von Navigation onChange() (this.props.input.onChange() in Form Komponente) -Funktion auslösen. Es sollte in Componentwillmount() Methode aufgerufen werden (zumindest hilft es mir, vielleicht gibt es eine bessere Funktion zu nennen) und jedes Mal, wenn es eine tatsächliche Änderung gibt. Auf diese Weise wird der Formwert festgelegt und kann richtig ausgewählt werden.