Я использую react-redux-form
LocalForm
, данные которого сохраняются в хранилище redux. Его документы можно найти здесь . У меня есть код ниже:
handleSubmit(value) {
console.log('Current State is: ' + JSON.stringify(value));
alert('Current State is: ' + JSON.stringify(value));
}
changeAction(model, value){
console.log(model);
this.props.dispatch({type:'CHANGE_FIELD',payload:{ value: value}});
}
<LocalForm model="feedback" onSubmit={(values) => this.handleSubmit(values)}>
<Control.text model=".firstname" id="firstname" name="firstname"
placeholder="First Name"
className="form-control"
defaultValue={this.props.fields.feedback.firstname}
changeAction={this.changeAction}
updateOn="change"
/>
<Button type="submit" color="primary">
Send Feedback
</Button>
</LocalForm>
Ниже приведен редуктор для redux:
const InitialFeedback={
feedback: {
firstname: ''
}
};
export const formsData=(state=InitialFeedback,action)=>{
switch(action.type){
case 'CHANGE_FIELD':
return {...state, feedback:{...state.feedback, firstname: action.payload.value} };
default:
return state
}
}
Данные сохраняются в магазине правильно, но проблема в том, что когда я отправляю форму, он показывает мне пустой объект значений, что означает, что он не может получить значения поля.
Но когда я удаляю эти два атрибута Control.text, changeAction
и updateOn
, он правильно выбирает значения полей при отправке, но в этом случае я не могу сохранить данные в хранилище redux.
Не могли бы вы помочь мне определить, есть ли в моем коде какая-либо ошибка, потому что консоль не показывает ее. Также в документации об этом ничего не говорится!
Спасибо!