Ant 设计表单未验证
Ant design form not validating
所以我试图按照文档进行操作,并想出了这个:
这是一个简单的例子:
import { Button, Form, Input } from "antd";
export default function App() {
const [form] = Form.useForm();
return (
<Form form={form} onFinish={(data) => console.log(data)}>
<Form.Item
rules={[{ required: true, message: "test message" }]}
label="test"
>
<Input />
</Form.Item>
<Button htmlType="submit">Submit</Button>
</Form>
);
}
连同 codesandbox
Form.Item
的预期行为是在此处呈现红色警告:
但是没有这样的事情发生。 onFinish
表示表单数据是一个空对象,而验证不是 运行。所以我一定是错过了什么。知道什么了吗?
您需要为 Form.Item
组件设置 name
属性。
import "./styles.css";
import { Button, Form, Input } from "antd";
export default function App() {
const [form] = Form.useForm();
return (
<Form form={form} onFinish={(data) => console.log(data)}>
<Form.Item
rules={[{ required: true, message: "test message" }]}
name="username"
label="test"
>
<Input />
</Form.Item>
<Button htmlType="submit">Submit</Button>
</Form>
);
}
日志:
async-validator:
(1) ["'username' is required"]
所以我试图按照文档进行操作,并想出了这个:
这是一个简单的例子:
import { Button, Form, Input } from "antd";
export default function App() {
const [form] = Form.useForm();
return (
<Form form={form} onFinish={(data) => console.log(data)}>
<Form.Item
rules={[{ required: true, message: "test message" }]}
label="test"
>
<Input />
</Form.Item>
<Button htmlType="submit">Submit</Button>
</Form>
);
}
连同 codesandbox
Form.Item
的预期行为是在此处呈现红色警告:
但是没有这样的事情发生。 onFinish
表示表单数据是一个空对象,而验证不是 运行。所以我一定是错过了什么。知道什么了吗?
您需要为 Form.Item
组件设置 name
属性。
import "./styles.css";
import { Button, Form, Input } from "antd";
export default function App() {
const [form] = Form.useForm();
return (
<Form form={form} onFinish={(data) => console.log(data)}>
<Form.Item
rules={[{ required: true, message: "test message" }]}
name="username"
label="test"
>
<Input />
</Form.Item>
<Button htmlType="submit">Submit</Button>
</Form>
);
}
日志:
async-validator:
(1) ["'username' is required"]