🧐[问题] ProForm 的 params 与 request 配合使用未根据返回内容刷新表单
Opened this issue · 1 comments
BuknSS commented
🧐 问题描述
ProForm 的 params 与 request 配合使用未按返回内容重新更新表单字段。
代码:
import { ProForm, ProFormText } from '@ant-design/pro-components';
export default function TestBug({ id }: { id: number }) {
async function getById() {
const data = { content: `id:${id} now:${Date.now()}` };
console.log('TestBug: getById returns', data);
return data;
}
return (
<ProForm params={{ id }} request={getById}>
<ProFormText name="content" label="数据" />
</ProForm>
);
}
只要相同 id 出现过,会调用 request,但不会刷新表单字段。
const [id, setId] = useState(0);
setId((id) => id + 1);
setId((id) => id - 1);
<TestBug id={id} />
完整代码:
https://stackblitz.com/edit/vitejs-vite-gfgb6m?file=src%2FApp.tsx
fnoopv commented
request
是用来设置表单默认值的, 当然不会更新表单值, 和 initialValues
作用相同, 不同之处在于 1. 优先级更高, 会覆盖 initialValues
2. 可以请求远程数据。 你用错场景了