如何在react-final-form中更改onSubmit的表单值?

时间:2020-04-01 06:55:26

标签: reactjs react-admin react-final-form

我正在使用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(...)对象吗?

1 个答案:

答案 0 :(得分:0)

对于以后遇到此问题的任何人,我通过跟踪未更改的值并将其值设置为{{1},设法删除了不提交到其各自的后端REST路由的字段}。像这样的东西((请注意,这是与React-Admin框架结合使用的,但是我相信无论您在哪里使用react-final-form,它都可以工作。

undefined