2016-04-12 14 views
1

redux形式のドキュメントでは、reduxForm()デコレータが1つの必須引数(configオブジェクト)と4つのオプション引数(react-reduxのconnectデコレータに渡される4つの引数) 。しかし、mapStateToProps()関数を引数として渡してreduxForm()デコレータに渡すと、mapStateToProps()は実際には実行されません。以下の簡単なコード例を参照してください。通訳者は決してdebuggerに達しません。私はredux形式のドキュメントに関する何かを誤解していますか?redx-formが実行されていないmapStateToProps関数

import React from 'react'; 
import { reduxForm } from 'redux-form'; 

class Home extends React.Component { 
    render() { 
    return (
     <div>This is the home component.</div> 
    ); 
    } 
} 

function mapStateToProps(state) { 
    debugger; 
    const { 
    ui: { 
     isMailingListFormVisible 
    } 
    } = state; 
    return { 
    isMailingListFormVisible 
    }; 
} 

export default reduxForm({ 
    form: 'mailingList', 
    fields: ['firstName', 'email'] 
}, mapStateToProps)(Home); 
+0

、reduxFormは、もはやこれらの引数を受け取り、あなたreact-reduxの 'connect'関数を使用する必要があります。 – SlimSim

答えて

0

いいえ、あなたはドキュメントを誤解していません。私はあなたのコードの例を実行し、それはちょうど良いデバッガーのステートメントをヒットします。

0

<Provider>コンポーネントのどこかに置きますか?

正直なところ、あなたのコードに間違いはありません。

+0

間違いなく ''の中にあります。使用しているレキシックスフォームのバージョンを知っていますか?私はこれを5.0.0と6.0.0-alpha.4で試しました。どちらかのデバッガステートメントには到達していません。 – Brandon

+0

気にしないでください。私はこれを6.0.0-alpha.4で最初に試してみましたが、うまくいきませんでした。次に、node_modulesディレクトリを消去し、v6.0.0-alpha.4を再インストールしました。まだ動作しませんでした。その後、私はv5.0.0に切り替えました。まだ動作しませんでした。その後、node_modulesディレクトリをクリアしてv5.0.0を再インストールし、ついにそれが動作するようになりました。おそらく、v6にAPIの変更がいくつかありますか? – Brandon

+0

これは私のせいでした。謝罪します。 –

1

あなたのコードは、あなたのFormコンポーネントを飾ると、手動でストアに全体を接続する必要がV6にという理由だけで、V6には動作しませんでした:V6のよう

import ... 

class MyForm extends React.Component { 
    ... 
} 

MyForm = reduxForm({ 
    form: 'myForm', 
    ... 
})(MyForm); 

export default connect(mapStateToProps, mapDispatchToProps)(MyForm); 
関連する問題