/** * 父组件 -start */class Test extends PureComponent {  state = { data: {}, type: void 0 };  componentDidMount() {    // this.setState({    //   type: "edit",    //   data: {    //     sex_type: "no",    //     id: "sb",    //     info: "33",    //     sex: "man",    //     child: {    //       info: "000",    //       input: "i2",    //       sex: "man",    //     },    //   },    // });  }  render() {    let { data = {}, type } = this.state;    return (      <div>        test应用的事test里的form表单 俗称子表单        <Test.Form data={data} type={type}></Test.Form>      </div>    );  }}

test的表单子组件

/** * form 的组件 -start */class TestForm extends PureComponent {  render() {    const { getFieldDecorator, getFieldValue } = this.props.form;    let { data = {}, type } = this.props;    if (type === "edit") {      getFieldDecorator("id", {        initialValue: data.id,      });    }    return (      <Form        className="test-form"        onSubmit={(e) => {          e.preventDefault();          console.error("提交1的提交");          this.props.form.validateFields((err, values) => {            if (!err) {              console.log("Received values of form: ", values);            }          });        }}        // 输入框后面的文字间隔        labelCol={{          span: 12,        }}        // 输入框的间隔  一共加起来 不能超过24        wrapperCol={{          span: 12,        }}      >        <Form.Item label="小郑喜爱吃西瓜吗?" extra={""}>          {getFieldDecorator("sex_type", {            initialValue: data.sex_type || "no",            rules: [              {                required: true,                message: "小郑是的吧",              },            ],          })(            <Select placeholder="快答复是的" allowClear>              {[                { label: "是的", value: "yes" },                { label: "不是", value: "no" },              ].map((item, index) => {                return (                  <Select.Option key={index} value={item.value}>                    {item.label}                  </Select.Option>                );              })}            </Select>          )}        </Form.Item>        {/* 性别 */}        {getFieldValue("sex_type") === "no" && (          <Form.Item label="性别">            {getFieldDecorator("sex", {              initialValue: data.sex || "man",            })(              <Radio.Group>                <Radio value="man">男</Radio>                <Radio value="woman">女</Radio>              </Radio.Group>            )}          </Form.Item>        )}        {/* 子组件 */}        <Form.Item label="child1">          {getFieldDecorator("child1", {            initialValue: ["1"],          })(<Child show={true}></Child>)}        </Form.Item>        <Form.Item label="child2">          {getFieldDecorator("child2", {            initialValue: [],          })(<Child show={false}></Child>)}        </Form.Item>        <Form.Item label="child3">          {getFieldDecorator("child3", {            initialValue: ["2"],          })(<Child form={this.props.form} data={data}></Child>)}        </Form.Item>        <Form.Item          labelCol={{            span: 0,          }}          wrapperCol={{            span: 24,          }}        >          <Button htmlType="submit">提交1</Button>          <Button            htmlType="button"            onClick={(e) => {              e.preventDefault();              console.error("提交2的提交");              this.props.form.validateFields((err, values) => {                if (!err) {                  console.log("Received values of form: ", values);                }              });            }}          >            提交2          </Button>          <Button            htmlType="button"            onClick={() => {              console.error("我是一个重置按钮");              this.props.form.resetFields();            }}          >            重置          </Button>          <Button            htmlType="button"            onClick={() => {              console.error("我是一个一般按钮");            }}          >            一般按钮          </Button>        </Form.Item>      </Form>    );  }}//真的form    Form.create是创立一个form 这样就能够应用外面其办法Test.Form = Form.create({ name: "normal_login" })(TestForm);/** * form 的组件 -end */export default Test;

test内容的子组件

class Child extends PureComponent {  get form() {    return this.props.form;  }  render() {    let { show, data = {}, form, ...otherProps } = this.props;    if (this.form) {      this.form.getFieldDecorator("child.info", {        initialValue: data?.child?.info,      });      this.form.getFieldDecorator("child.sex", {        initialValue: data?.child?.sex,      });    }    return (      <div>        {/* 把父组件所有的货色都给了子组件  ...otherProps 父组件其余的数据*/}        <Checkbox.Group {...otherProps}>          <Checkbox value="1">1</Checkbox>          <Checkbox value="2">2</Checkbox>        </Checkbox.Group>        {show ? "有show" : "没有show"}        <Form.Item label="child.input">          {this.form?.getFieldDecorator("child.input", {            initialValue: data?.child?.input,            rules: [              {                required: true,                message: "不能为空",              },            ],          })(<Input allowClear placeholder="-child.input"></Input>)}        </Form.Item>      </div>    );  }}