【发布时间】:2020-08-14 08:08:47
【问题描述】:
我使用 Antd。我有包含表单的模态窗口。当用户打开模态窗口时,我想专注于输入字段。我如何在功能组件中做到这一点?我试试这个,但对我不起作用:
const EditForm = ({visible, widget, onSave, onCancel}) => {
const nameInput = useRef();
useEffect(() => nameInput.current && nameInput.current.focus());
const [form] = Form.useForm();
return (
<div>
<Modal
visible={visible}
title='Edit'
okText='Save'
cancelText='Cancel'
onCancel={onCancel}
onOk={() => {
form
.validateFields()
.then(values => {
form.resetFields();
onSave(values);
})
.catch(info => {
console.log('Validate Failed:', info);
});
}}
>
<Form
{...formItemLayout}
layout={formLayout}
form={form}
>
<Form.Item />
<Form.Item
name='nameWidget'
label='Name'
>
<Input name='nameWidget' ref={nameInput} onChange={handleChangeName} placeholder='Введите новое название' />
</Form.Item>
</Form>
</Modal>
</div>
);
};
【问题讨论】:
-
你可以参考这个答案来回答你的问题:stackoverflow.com/a/71736082/14219692
标签: javascript reactjs modal-dialog autofocus