_form.default.create(...) is not a function

3,192 阅读1分钟

Ant Design 4.0 对Form进行了修改,已经不使用 Form.create,也不需要使用了,它会自动验证,移除了原来的onSubmit,改用onFinish。

改完之后还是会存在这个问题!!!

是因为在跟升级antd是使用了官网推荐的方法:npm i -g @ant-design/codemod-v4

具体更新版本地址:ant.design/docs/react/…

改完之后还是会存在这个问题是因为

import { Form } from '@ant-design/compatible';

把这个From删除换成antd推荐语法

      import { Form, Input, Button } from 'antd';

      <Form
          name="normal_login"
          className="login-form"
          initialValues={{ remember: true }}
          onFinish={this.handleSubmit}
        >
          <Form.Item
            name="username"
            rules={[{ required: true, message: 'Please input your Username!' }]}
          >
            <Input prefix={<UserOutlined className="site-form-item-icon" />} placeholder="Username" />
          </Form.Item>
          <Form.Item
            name="password"
            rules={[{ required: true, message: 'Please input your Password!' }]}
          >
            <Input
              prefix={<LockOutlined className="site-form-item-icon" />}
              type="password"
              placeholder="Password"
            />
          </Form.Item>
          <Form.Item>
            <Button type="primary" htmlType="submit" className="login-form-button">
               登录
            </Button>
          </Form.Item>
        </Form>

###解决!