pro-components icon indicating copy to clipboard operation
pro-components copied to clipboard

🧐[问题]ProForm 有没有类似 ProTable 中的 actionRef.reload()方法 formRef.reload() 重新请求一次request后赋值表单?

Open echoyl opened this issue 2 years ago • 4 comments
trafficstars

如题

echoyl avatar Oct 30 '23 06:10 echoyl

image

formRef?.current?.resetFields?.() 就是重置

如果后台数据会变 那就直接调用 formRef?.current?.setFieldsValue?.({}) 赋值就行了

zhengmenghuang avatar Oct 30 '23 08:10 zhengmenghuang

image

formRef?.current?.resetFields?.() 就是重置

如果后台数据会变 那就直接调用 formRef?.current?.setFieldsValue?.({}) 赋值就行了

这个方法会重置form表单 但是不会重新request请求,数据还是不会变化。request是proform的props 场景就是 form表单中嵌套了一个组件 只能将formRef传给该组件,在这个组件中操作完后,需要使用formRef 重载request更新表单数据

echoyl avatar Oct 31 '23 08:10 echoyl

https://github.com/ant-design/pro-components/issues/7523 类似的问题,为什么没有一个重新 request 的方法呢,有点奇怪

yunsii avatar Jan 25 '24 08:01 yunsii

在 request 里自己实现个参数合并可以解决,不过不优雅:

let mergedParams= params;
const formParams = await proFormRef.current?.getFieldsValue();
mergedParams= { ...mergedParams, ...pickBy(formParams, Boolean) };

yunsii avatar Jan 25 '24 08:01 yunsii