以下の例ではmapDispatchToProps
を使用して、save()
アクションクリエーターにonSubmit
イベントをバインドしています。これは動作します - save()
アクションクリエータはコンソールにメッセージを記録します。Redux-FormディスパッチはAction Creatorを呼び出しますが、リデューサーは決してアクションを受け取りません。
問題は、引き続き 'TEST_SAVE'アクションをディスパッチしないことです。つまり、レデューサーはタイプ 'TEST_SAVE'のアクションを受け取ることはありません。
私は以下のように働くバニラレキシックスフォームを持っていますが、私はレフィックスフォームには新しく、何が間違っているのだろうか?
const reducers = {
// ... your other reducers here ...
form: formReducer.plugin({
contact: (state, action) => {
switch(action.type) {
case 'TEST_SAVE':
return state;
default:
return state;
}
}
})
};
const reducer = combineReducers(reducers);
const store = createStore(reducer);
function mapDispatchToProps(dispatch) {
return {
onSubmit: (val) => dispatch(actionCreators.save(val)),
}
}
var actionCreators = {
save: (value) => {
console.log('SAVE action done!');
return {type: 'TEST_SAVE', value};
},
};
const MyContactForm = connect(
mapDispatchToProps
)(ContactForm)
<Provider store={store}>
<MyContactForm />
</Provider>
のContactFormクラスの抜粋:
class ContactForm extends Component {
render() {
const { error, handleSubmit, pristine, reset, submitting } = this.props;
return (
<form
onSubmit={handleSubmit}
>
....
)
}
}
ContactForm = reduxForm({
form: 'contact'
})(ContactForm);
ああ、そのような明白で簡単なことは、後で知っている。ありがとう、エリック - 答えのために間違いなく、そして図書館も! – markau