我正在使用React-Admin,它使用react-final-form作为它使用的表单的基础组件。
我正在尝试仅使用已更改的字段对提交进行REST调用。因此,给定字段A和字段B是要发送到不同REST路由的不同资源,因为两者都采用表格形式,并且只有字段B已更改,所以只有字段B应该发送到后端,因此以防止重复的多个API请求。
无论如何,我看了一下here,遇到的问题如下:
我有这个onSubmit处理程序:
const handleClick = useCallback(() => {
// prints 'before' value
console.log(JSON.parse(JSON.stringify(form.getState().values)));
const values = form.getState().values;
// take out Field A, because Field A is NOT to be sent in the request
const { FieldA, ...valuesToSubmit } = values;
// How can I do this part? <------
form.change('values', valuesToSubmit);
handleSubmitWithRedirect(redirect);
}, [form]); // useForm hook for react-final-form
我通过执行类似的操作设法更改了各个字段的值,
form.change('FieldB', 'test');
但是,如果我有很多字段,我不想单独更改所有字段。可以用values
替换整个form.change(...)
对象吗?
答案 0 :(得分:0)
对于以后遇到此问题的任何人,我通过跟踪未更改的值并将其值设置为{{1},设法删除了不提交到其各自的后端REST路由的字段}。像这样的东西((请注意,这是与React-Admin框架结合使用的,但是我相信无论您在哪里使用react-final-form,它都可以工作。
undefined