2017-12-14 17 views
0

定義されていません次のようなページに移動した後: browserHistory.push( `/ mypage/$ {slug}`))。しかし、ownPropsは空です:Reduxの形式のownPropertiesは、次のように私は状態に接続していReduxのフォームを持っている

const mapStateToProps = (state, ownProps) => { 

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

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

私はredux形式に接続するにはさまざまな方法を試しましたが、成功しませんでした。これを解決する方法についてのヒントは本当にありがたいです。

答えて

0

私はあなたの問題をここで理解していると思います。 selectorを使用して値を取得するには、reduxフォームを接続する必要があります。下記のサンプルコードをご覧ください。それがあなたを助けることを願っています。

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

こんにちはUmeshお返事ありがとうございました。私はすでにあなたがここに投稿したものと非常によく似た実装をしています。私の問題はセレクタで動作するようになっていません。私の問題は、mapStateToPropsの引数としてownPropsパラメータを使用して、urlから反応ルータのパラメータを抽出する必要があることです。私が追加した場合、ownPropsは常に定義されていないようです。私はredux形式を使用しないコンポーネントのためにこれが働いているので、私はredux形式で正しく使用していないか、redux形式ではサポートしていないと推測しています。 – foobar

0

私は私の連結成分の周りに反応し、ルータのwithRouterを追加することによってそれを解決:、

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