Warning: Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?在Form元件渲染之前調用了useForm方法,會報這個錯誤,如果是在Modal中,可以給Modal加上forceRender
解法有以下幾種:
modalProps.getContainer設為 falsemodalProps.forceRender設為 true
<ModalForm
{...}
form={form}
width="60%"
modalProps={{
destroyOnClose: true,
getContainer: false,
forceRender: true
}}
>
{...}
</ModalForm>3. 使用 ref 先判斷 modal 是否已經渲染 (官方推薦解法)
import React, { useRef } from 'react'
import { Form } from 'antd'
import { ModalForm, ProForm } from '@ant-design/pro-components'
export const ModalComponent = ({ show }) => {
const [form] = Form.useForm<Data>()
const preVisibleRef = useRef<boolean>()
useEffect(() => {
preVisibleRef.current = show
if (!show && preVisibleRef.current) {
form.resetFields()
}
}, [show])
return (
<ModalForm {...} form={form} open={show}>
{...}
</ModalForm>
)
}




![[Electron筆記] mainWindow & Tray & context-isolation & MessagePort 6 Electron logo](https://www.may-notes.com/wp-content/uploads/2024/05/1_lC9vdCdYvnrtFae0trUe5A-150x150.webp)
![[Electron筆記] mainWindow & Tray & context-isolation & MessagePort 9 Electron logo](https://www.may-notes.com/wp-content/uploads/2024/05/1_lC9vdCdYvnrtFae0trUe5A-120x120.webp)