首页 > 解决方案 > form.reset 具有新的初始值,不启用 react-final-form 中的 onSubmit 按钮

问题描述

我正在设置新的初始值,当单击“重置”按钮时,“提交”按钮未启用。首先,我使用数据库中的数据初始化表单,然后尝试使用新的初始化数据“重置”这些数据,然后“提交”按钮未启用,并且两者都保持禁用状态。如何再次启用“保存”按钮?我考虑过使用“脏”道具,但它的作用与“原始”道具不同。

           <StyledActionsButtons>
              <StyledResetButton
                disabled={submitting || pristine}
                onClick={() => {
                  form.reset({
                    tag: i18n.t('settings.detected'),
                    subject:
                      type === 'stop'
                        ? i18n.t('settings.stop')
                        : i18n.t('settings.stoppingBy'),
                    title:
                      type === 'stop'
                        ? i18n.t(
                            'settings.stopper'
                          )
                        : i18n.t('settings.stepForward')
                  });
                }}
              >
                {i18n.t('settings.reset')}
              </StyledResetButton>
              <StyledButton
                primary={0}
                htmlType="submit"
                disabled={submitting || pristine || readOnly}
              >
                {i18n.t('settings.save')}
              </StyledButton>
            </StyledActionsButtons>

帮助表示赞赏。汤姆

标签: reactjsformsreact-final-form

解决方案


根据定义,如果您不进行任何更改,则原始标志为真。我不确定您要完成什么,但您似乎不想重置初始值,而是将字段设置为已知值并提交。要设置表单状态,请使用mutator


推荐阅读