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

React更新表单点击提交无响应,请求技术帮助

React 更新表单提交无响应问题排查与解决

核心问题分析

点击提交按钮无反应、不显示加载状态,大概率是表单提交逻辑被阻止或未正确绑定,结合你的代码,主要排查以下几个点:

1. React-Hook-Form 组件嵌套冲突

你同时使用了 @hookform/react 的 <Form {...form}> 组件和原生 <form> 标签,这会导致提交事件被覆盖或冲突——React-Hook-Form 的 Form 组件已经封装了表单的提交逻辑,无需再嵌套原生 form 标签。

修复代码:

// 移除内层原生<form>,直接在<Form>上绑定提交逻辑
return (
  <Form 
    {...form} 
    onSubmit={form.handleSubmit(onSubmit)}
    className='space-y-8'
  >
    // 表单输入框等内容
    <Button
      type='submit'
      disabled={form.formState.isSubmitting}
    >
      {form.formState.isSubmitting ? 'Submitting...' : 'Submit'}
    </Button>
  </Form>
);

2. 表单字段 name 属性缺失/不匹配

React-Hook-Form 完全依赖表单元素的 name 属性来关联字段值,如果你的输入框没有设置 name,或者 name 与 formSchema 中的字段名不一致,表单无法收集值,会触发校验失败,直接阻止提交(如果没加错误提示,就会看起来没反应)。

检查要点:
确保所有输入组件的 name 和 formSchema 字段严格对应,比如:

// 假设formSchema定义了`nama`字段
<Input 
  {...form.register('nama')}
  name="nama" // 必须和schema字段名一致
  defaultValue={warga.nama}
/>

3. DefaultValues 未正确初始化

如果 formSchema 中有必填字段,但 defaultValues 没有设置对应值,React-Hook-Form 会判定表单校验不通过,阻止提交。

修复代码:
根据 warga 数据和 formSchema 完整初始化默认值:

const form = useForm<z.infer<typeof formSchema>>({
  resolver: zodResolver(formSchema),
  defaultValues: {
    nik: warga.nik,
    nama: warga.nama,
    statusPekerjaan: warga.statusPekerjaan,
    // 补充所有schema定义的字段
  },
});

4. 调试表单状态确认问题

可以临时添加调试代码,查看表单的校验状态和错误信息:

// 在FormComponent中添加
useEffect(() => {
  console.log('表单错误:', form.formState.errors);
  console.log('是否通过校验:', form.formState.isValid);
}, [form.formState]);

// 或者在页面上展示错误提示
{Object.values(form.formState.errors).map((err, idx) => (
  <p key={idx} className="text-red-500 text-sm">
    {err.message}
  </p>
))}

5. 强类型约束避免可选链风险

把 FormComponent 的 props 类型从 any 改为明确的 Warga 类型,避免 warga?.nik 可能带来的隐性问题:

export default function FormComponent({ warga }: { warga: Warga }) {
  // ...
  async function onSubmit(values: z.infer<typeof formSchema>) {
    // 这里直接用warga.nik即可,无需可选链
    const response = await axios.patch(`/api/warga/${warga.nik}`, values);
    // ...
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 23:47:49