如何在 react-final-form 的表单外访问 "pristine"、"submitting" 和 "form.reset"?

How to access "pristine", "submitting" and "form.reset" outside the form in react-final-form?

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

如何在表单外访问诸如“pristine”、“submitting”和“form.reset”之类的内容?

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

我将整个组件包装在 <Form> 元素中。似乎是最干净的解决方案。

如果您无法将所有内容封装在 <Form> 标记中,您可以使用 MutableRefs 从表单中提取 form 实例。

form 实例随后可用于访问表单状态、更改字段值等等。要详细了解 form 实例的功能 - React Final Form - Form API

关于如何提取 form 实例的说明 - Access react-final-form values from outside the form

Final Form Submit Listener

试试这个解决方案并告诉我结果

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