В приведенном ниже примере я использую mapDispatchToProps
для привязки события onSubmit
к save()
Action Creator. Это работает - save()
Action Creator записывает сообщение в консоль.
Проблема в том, что он впоследствии не отправляет действие TEST_SAVE, т.е. редуктор никогда не получает действие типа TEST_SAVE.
У меня есть ванильная форма redux, работающая, как показано ниже, но я новичок в redux-form, и мне интересно, что я могу делать не так?
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);