2017-12-14 5 views
0

ich eine redux-Form, die ich an den Staat bin Anschluss wie folgt:Redux-Form ownProperties undefiniert

export default connect(mapStateToProps)(reduxForm({ 
    form: 'MyForm', 
    validate // validation function given to redux-form 
})(MyForm)); 

Ich möchte nun einen Butzen Wert erhalten, die ein param reagieren-Router (Nach der Navigation auf die Seite wie folgt: browserHistory.push (`/ mypage/$ {slug}`)). Allerdings ownProps ist leer:

const mapStateToProps = (state, ownProps) => { 

    console.dir(ownProps); // ISSUE: this is empty 

    const someField = selector(state, 'someField'); 
    ... 
}; 

Ich habe versucht, verschiedene Möglichkeiten, mit redux-Form, aber noch nicht erfolgreich gewesen. Ich würde mich sehr über Hinweise freuen, wie das zu lösen ist.

Antwort

0

Ich glaube, ich habe Ihr Problem hier verstanden. Sie müssen das Redux-Formular verbinden, um Werte mit dem Selektor zu erhalten. Bitte beachten Sie den Beispielcode unten. Hoffe es wird dir helfen.

import React from 'react' 
import { Field, reduxForm, formValueSelector } from 'redux-form' 
import validate from './validate' 
import example from './components/example' 

import { connect } from 'react-redux' 

function myForm ({ 
    someProp, 
    exampleClick 
}) { 
    function handleSubmit (e) { 
    } 
    return <form onSubmit={handleSubmit}> 
    <Field 
     name='name' 
     component={example} 
     submitBtnClicked={exampleClick} /> 
    </form> 
} 

let thisForm = reduxForm({ 
    form: 'myForm', 
    validate 
})(myForm) 

const selector = formValueSelector('myForm') 

thisForm = connect(
    state => { 
    const someField = selector(state, 'someField') 
    return ({someField}) 
    } 
)(thisForm) 

export default thisForm 
+0

Hallo Umesh, vielen Dank für Ihre Antwort. Ich habe bereits eine Implementierung, die der, die Sie hier gepostet haben, sehr ähnlich ist. Mein Problem funktioniert nicht mit dem Selektor. Mein Problem ist, dass ich den Parameter OwnProps als Argument für mapStateToProps verwenden muss, um die Parameter des react routers aus der URL zu extrahieren. Es scheint, als wären die eigenenProps immer undefiniert, wenn ich sie hinzufüge. Ich habe das für eine Komponente, die redux-form nicht verwendet, so dass ich denke, dass ich es nicht richtig mit redux-form verwende, oder redux-form unterstützt es nicht. – foobar

0

ich es gelöst durch Zugabe von withRouter des reagieren-Router um meine angeschlossene Komponente:

export default withRouter(connect(mapStateToProps)(reduxForm({ 
    form: 'MyForm', 
    validate // validation function given to redux-form 
})(MyForm)));