Я пытаюсь отобразить модальное окно, которое показывает, какие конкретные поля были изменены в форме, когда пользователь нажимает сохранить (при отправке).
Я попытался сравнить значения, и если они отличаются от исходных значений, я распечатываю весь объект со всеми значениями. Однако, единственные, которые я хочу, - это поля, которые были изменены.
import { Field, reduxForm } from 'redux-form';
class SearchFilters extends Component {
constructor(props) {
super(props);
this.state = {
values: ''
};
this.onSubmit = this.onSubmit.bind(this);
}
onSubmit(values) {
// check if states are same, if not, setState and doSomething
const valueString = JSON.stringify(values);
if ( this.state.values !== valueString ) {
this.setState({ values: valueString });
this.props.doSomething(values);
}
}
renderField(field) {
return (
<div className="search-parameter">
<input type="text" {...field.input} />
</div>
);
}
render() {
const { handleSubmit, pristine, submitting, invalid } = this.props;
return (
<form onSubmit={handleSubmit(this.onSubmit)} >
<Field
component={this.renderField}
key="keyword"
name="keyword"
/>
<Field
component={this.renderField}
key="type"
name="type"
/>
</form>
);
}
}
export default reduxForm({
validate,
form: 'SearchFiltersForm',
})(connect(mapStateToProps, null)(SearchFilters));
shareeditflag
Это в значительной степени похоже на это, я просто заблудился от того, как бы я выбрал отдельные поля. Мне нужно сохранить все поля, поэтому я только пытаюсь отобразить измененные, поэтому не нужно беспокоиться о сохранении только измененных.