You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Formik的isSubmitting不生效,无法控制按钮状态怎么解决

Formik isSubmitting 属性失效排查方案
  • 首先检查onSubmit回调是否正确处理异步逻辑:Formik 默认仅会在onSubmit执行完成后自动将isSubmitting重置为 false,如果你的提交逻辑包含异步操作(比如接口请求)但没有加async/await声明,Formik 会误判onSubmit已经执行完毕,立即把isSubmitting改回 false,导致看不到状态变化。

正确写法参考:

onSubmit: async (values, { setSubmitting }) => {
  try {
    // 异步提交逻辑,比如调用后端接口
    await submitRequest(values)
  } finally {
    // 无论请求成功失败,手动重置提交状态
    setSubmitting(false)
  }
}
  • 检查按钮是否正确绑定isSubmitting属性:不要额外声明独立的 state 控制按钮状态,直接使用 Formik 实例暴露的isSubmitting即可,绑定写法如下:
<button 
  type="submit" 
  disabled={formik.isSubmitting}
>
  {formik.isSubmitting ? '提交中...' : '提交'}
</button>
  • 检查是否在onSubmit外的其他逻辑中手动调用setSubmitting覆盖了状态:如果提交过程中有其他操作修改了该状态,也会导致展示异常。
  • 检查 Formik 版本是否为稳定正式版:2.0 以上的稳定版本不存在该属性的原生 bug,如果你使用的是老旧的 alpha、beta 测试版,建议升级到正式版规避兼容性问题。

内容的提问来源于stack exchange,提问作者Afzal Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:06:00