Есть ли способ показать, какие конкретные поля были изменены при отправке в избыточной форме? - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь отобразить модальное окно, которое показывает, какие конкретные поля были изменены в форме, когда пользователь нажимает сохранить (при отправке).

Я попытался сравнить значения, и если они отличаются от исходных значений, я распечатываю весь объект со всеми значениями. Однако, единственные, которые я хочу, - это поля, которые были изменены.

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

Это в значительной степени похоже на это, я просто заблудился от того, как бы я выбрал отдельные поля. Мне нужно сохранить все поля, поэтому я только пытаюсь отобразить измененные, поэтому не нужно беспокоиться о сохранении только измененных.

...