2016-12-19 6 views
1

私のアクションをreduxForm呼び出しに渡そうとすると、アクションがそのプロップにマップされません。このエラーが発生しました:Redux-form matchDispatchToPropsが動作しません

以下にエラー再現の手順を示します。ご協力いただき誠にありがとうございます!

import { Field, reduxForm } from 'redux-form'; 
... 
export default reduxForm({ 
    form: 'authentication' 
}, null, signUpUser)(Login); 
をreduxFormするReduxの-サンク

export function signUpUser({ firstName, lastName, email, password, passwordConfirm }) { 
    console.log("action: ", firstName) 
    console.log("action: ", lastName) 
    console.log("action: ", email) 
    console.log("action: ", password) 
    console.log("action: ", passwordConfirm) 
    return function(dispatch) { 
     dispatch({ 
     type: AUTH_USER, 
     payload: response.data.message 
    }); 
    } 
} 

VSCodeメソッドシグネチャヘルパー

(alias) reduxForm(config: ReduxFormConfig, mapStateToProps?: MapStateToProps, mapDispatchToProps?: MapDispatchToPropsFunction | MapDispatchToPropsObject): ClassDecorator 
import reduxForm 

マイコールと

マイ・テスト・アクション・クリエーター

私React.Component

handleFormSubmit(values) { 
    this.validateFields(values); 

    console.log("works") 
    if (this.state.errors.email.exists && this.state.errors.email.valid && this.state.errors.password.match) { 
     console.log("works2") 
     this.props.signUpUser(values); 
    } 
    } 
+0

あなたは 'export default reduxForm({ フォーム: '認証' }、null、{signUpUser:signUpUser})(ログイン)をエクスポートしましたか? –

+0

ちょっと@JyothiBabuAraja、私はv6を使用しているので、以下のJaganathanの答えが働いています。私はあなたがES5の構文から来ている場所を得る:)ありがとう! – Clement

答えて

2

でのアクションの私の使い方Jyothiさんのコメントは、あなたがredux-form V6を使用している場合があります、あなたのために動作しませんでした@場合。バージョン6では、あなた自身のredux-formconnectイオンを以下のように使用する必要があります。ここで

class MyForm extends Component {} 
MyForm = reduxForm(config)(MyForm) 
MyForm = connect(mapStateToProps, mapDispatchToProps)(MyForm) 
export default MyForm 

redux-formドキュメントからexampleです。

+0

驚くばかり!私は本当にv6を使用しています。私はドキュメントを読んだが、ちょっと混乱して、あなたの説明が本当に助けになる。ありがとう:) – Clement

関連する問題