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

React表单提交时JSON.stringify返回空对象/null问题排查

问题定位

提交内容为空对象的核心原因是用户输入的文本从未同步到React的form状态中,具体错误点如下:

  • textarea未做受控组件绑定:代码中textarea仅写了占位符,被注释掉的value绑定没有生效,也没有绑定onChange事件监听输入,用户输入的内容完全没有被状态管理捕获,form.message始终为初始空值。
  • 状态更新逻辑绑定位置错误:你将updateForm写在了按钮的onClick事件中,取值为按钮自身的e.target.value,但按钮的value属性绑定的是未定义的form.name,根本获取不到textarea中的输入内容。
  • 按钮type属性配置错误:按钮设置的type="text"不是合法的表单按钮类型,无法正确触发表单的onSubmit提交逻辑。
修复代码
  1. 修改textarea部分,添加受控绑定,实时同步输入内容到状态:
<textarea
  className="message"
  placeholder="Type something!"
  value={form.message}
  onChange={(e) => updateForm({ message: e.target.value })}
></textarea>
  1. 修改提交按钮配置,移除错误绑定在按钮上的状态更新逻辑,修正按钮type为submit:
<button
  className="button"
  type="submit"
  onClick={(e) => {
    magic();
    handleButtonClick();
  }}
>
  <span className="default">Ping</span>
  <span className="success">Wohoo! You Pinged Me!</span>
  <div className="left"></div>
  <div className="right"></div>
</button>
效果验证

修改完成后触发提交,onSubmit中打印的JSON.stringify(newMessage)将正常输出包含用户输入内容的对象,后端可正常接收到message字段值,不会再返回null。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:36:18