Как обновить поля формы Redux при нажатии кнопки ... Я использовал forceUpdate в ReactJS, но он не работает - PullRequest
0 голосов
/ 20 января 2020

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

 import React, { Component } from "react";
    import { Field, reduxForm, getFormValues, formValueSelector } from "redux-form";
    import { withRouter } from "react-router-dom";
    import { connect } from "react-redux";
    import { regionActions } from "./ducks/index";
    import { Row, Col, ButtonToolbar, Button } from "react-bootstrap";
    import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
    import { InputField } from "./../../components/controls/Fields";
    import "./regionManagement.scss";

    const validate = values => {
      const errors = {};
      const fieldVal = ["regionName", "code", "description"];

      fieldVal.forEach(fieldVal => {
        if (!values[fieldVal]) {
          errors[fieldVal] = "Required";
        }
      });
      return errors;
    };

    class RegionForm extends Component {
      constructor(props) {
        super(props);
        this.forceUpdateHandler = this.forceUpdateHandler.bind(this);
      }

      forceUpdateHandler() {
        this.forceUpdate();
      }

      componentDidUpdate(prevProps) {
        if (
          this.props.selectedRegion &&
          this.props.selectedRegion != prevProps.selectedRegion
        ) {
          this.props.initialize({
            selectedRegion: this.props.selectedRegion && this.props.selectedRegion,
            regionName: this.props.selectedRegion && this.props.selectedRegion.name,
            code: this.props.selectedRegion && this.props.selectedRegion.code,
            description:
              this.props.selectedRegion && this.props.selectedRegion.description
          });
          this.setState({ selectedRegion: this.props.selectedRegion });
        }
      }

      render() {
        const { handleSubmit, onSubmit, invalid, submitting } = this.props;
        return (
          <form onSubmit={handleSubmit(onSubmit)}>
            <div className="form-group">
              <h5>{this.props.title}</h5>
            </div>
            <div className="form-group">
              <label>Name</label>
            </div>
            <div>
              <Field
                type="text"
                className="form-control mb-2"
                name="regionName"
                component={InputField}
                disabled={this.props.fieldDisabled}
              />
            </div>
            {/* {this.props.mode == "add" ? ( */}
            <>
              <div className="form-group">
                <label>Code</label>
              </div>
              <div>
                <Field
                  type="text"
                  className="form-control mb-2"
                  name="code"
                  component={InputField}
                  disabled={this.props.fieldDisabled}
                />
              </div>

              <div className="form-group">
                <label>Description</label>
              </div>
              <div>
                <Field
                  type="text"
                  className="form-control mb-2"
                  name="description"
                  component={InputField}
                  disabled={this.props.fieldDisabled}
                />
              </div>
            </>

            <ButtonToolbar>
              <Button
                as="input"
                type="submit"
                value={this.props.button}
                className="button"
                debugger
                onClick={this.forceUpdateHandler}
              />
            </ButtonToolbar>
          </form>
        );
      }
    }

    function mapStateToProps(state) {
      return {
        region: state.Regions,
        fieldValues: getFormValues("region_form")(state)
      };
    }

    export default withRouter(
      reduxForm({
        form: "region_form",
        validate
      })(connect(mapStateToProps, regionActions)(RegionForm))
    );

Я хочу использовать метод forceUpdate для обновления моей формы Redux по нажатию кнопки ... как это сделать sh это ?? Я даже использовал связывание, но оно не работает

...