我有一个问题与antd形式。代码如下:
const onFinish = (form: any) => {
console.log("FORM: ", form);
//{email: undefined, password: undefined, "": undefined}
};
<Form
onFinish={onFinish}
name="login"
layout="vertical"
>
<Form.Item
name="email"
>
<Typography>EMAIL</Typography>
<Input />
</Form.Item>
<Form.Item
name="password"
>
<Typography>PASSWORD</Typography>
<Input type="password" />
</Form.Item>
<Form.Item>
<Button htmlType="submit" className={styles.submitButton}>
SIGN IN
</Button>
</Form.Item>
</Form>
有人能告诉我为什么在我的按钮上点击,antd返回我从形式只有未定义的值?
感谢任何帮助!
2条答案
按热度按时间uxh89sit1#
因为你还没有在输入中输入任何东西。添加输入规则。Read more。例如:
rks48beu2#
我试过你的代码,它工作得很好,所以我认为它就像@ Alexandria Kosykh提到的那样,你可能没有输入任何输入。
但是,
onFinish
函数可能存在潜在问题,您期望form
参数为any
类型,但您访问其属性时却将其定义为。具体来说,您正在记录form
对象的email
和password
属性,但由于您没有在Form.Item
组件中指定它们的类型,因此TypeScript认为它们是可选的,并且可能未定义。要修复它,您可以使用interface在
onFinish
函数中定义form
参数的类型: