关于react中重新渲染的问题如何解决?

59 阅读1分钟

最近写代码遇见过一种场景, 举个例子吧:

export default function A() {
    return {
        <Form form={form}>
            <Form.Item>
                <B
                RemoveFile={(index)=>{
                form.setFieldValue(['xxx',...省略了]
                }}
                />
             </Form.Item>
         </Form>
    }
}

大概就是这个结构,此时我们使用form.setFieldValue()没有作用,是因为setFieldValue之后react组件并没有进行重新渲染,因此,可以加一个key,通过+1让react组件强制渲染

export default function A() {
const [key, setKey] = useState(0);
    return {
        <Form form={form}>
            <Form.Item>
                <B
                key={key}
                RemoveFile={(index)=>{
                form.setFieldValue(['xxx',...省略了]
                }}
                setKey(refKey => refKey + 1);
                />
             </Form.Item>
         </Form>
    }
}