antDesign form.getFieldDecorator 取值问题

发布于 2022-09-12 01:27:53 字数 2191 浏览 9 评论 0

答案: (官方文档,之前错误原因,getFieldDecorator与 ref冲突 ):

  handleSubmit = e => {
    e.preventDefault();
    this.props.form.validateFields((err, values) => {
      if (!err) {
        console.log('Received values of form: ', values);
      }
    });
  };


      <Form layout="inline" onSubmit={this.handleSubmit}>
        <Form.Item validateStatus={usernameError ? 'error' : ''} help={usernameError || ''}>
          {getFieldDecorator('username', {
            rules: [{ required: true, message: 'Please input your username!' }],
          })(
            <Input
              prefix={<Icon type="user" style={{ color: 'rgba(0,0,0,.25)' }} />}
              placeholder="Username"
            />,
          )}
        </Form.Item>

如题,form.getFieldDecorator在父组件里不好用啊.
报的错误在下面

如下写法,子组件是好用的

之前 是 getFieldDecorator 与 ref 属性冲突 .

export default Form.create<TableFormProps>()(TableForm);
"antd": "^3.23.6",
  "name": "ant-design-pro",
  "version": "4.0.0",
class AeModel extends React.Component {
... ...


  ModelNameChange = (e) => {
    this.form.validateFields((error: any, values: any) => {
      console.log(values)
    })

  };



  render() {
    const { getFieldDecorator } = this.props.form;
    return (
    
                <Form.Item label="模型名称">
                {getFieldDecorator("modelName", {
                initialValue: this.state.modelName,
                rules: [
                    {
                      required: true,
                      message: "模型名称不能为空"
                    }
                  ]
                })(
              <Input
                placeholder="请输入模型名称"
                // ref="ModelName"
                onChange={() => this.ModelNameChange()}
              />
              )}

                </Form.Item>
    ... ...
    )

export default Form.create<CreateFormProps>()(AeModel);

Screenshot from 2020-03-11 09-51-31.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

够运 2022-09-19 01:27:53

ant design 4.0了,如果你使用的是最新的版本,那form.getFieldDecorato 将不会被支持

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文