如何在react-final-form中访问表单外的“原始”、“提交”和“form.reset”?

IT技术 reactjs react-final-form
2021-05-10 19:54:33

我想在表单上方显示:“您有未保存的更改”(当表单不是原始的时)和“保存”(提交)和“放弃”(重置)按钮。

如何在表单外访问诸如“原始”、“提交”和“form.reset”之类的内容?

我只能找到一个带有外部提交的示例(https://final-form.org/docs/react-final-form/examples#external-submit),但这些东西似乎并不遵循相同的模式。

3个回答

我将整个组件包裹在<Form>element.js 中。似乎是最干净的解决方案。

如果您处于无法将所有内容封装在<Form>标签中的情况,您可以form使用MutableRefs.

form然后可以使用实例访问表单状态、更改字段值等等。了解更多form实例的能力- React Final Form - Form API

关于如何提取form实例的说明 -从表单外部访问 react-final-form 值

最终表单提交监听器

试试这个解决方案并告诉我什么

const submitListener = createDecorator({
    beforeSubmit: formApi => { 
        alert("go");
        formApi.reset();
    },
    afterSubmitSucceeded: formApi => {  alert("ok") },
    afterSubmitFailed: formApi => {  alert("ko") },
})