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

Jodit-react onChange回调报undefined property 'name'错误

问题根源

JoditEditor 未遵循原生HTML表单元素、React官方合成事件的传参规范,它绑定的onChange回调第一个参数不是标准事件对象,而是直接返回编辑器当前的纯文本/HTML内容字符串。代码里尝试读取e.target.name、e.target.value时,因为参数本身是字符串不存在target属性,自然会抛出undefined报错。这个差异是第三方组件的设计逻辑导致,普通HTML元素不存在这个问题。

修复方法

直接放弃从回调参数里读取target.name、target.value的写法,手动绑定对应字段名即可,代码修改如下:

  • 第一步:调整事件处理函数,直接接收字段名、内容值两个参数
let [something,setSomething] = useState({'s':''})
let {s} = something
let handleChange = (fieldName, fieldValue)=>{
  setSomething({
    ...something,
    [fieldName]: fieldValue
  })
}
  • 第二步:调整JoditEditor的onChange绑定逻辑,手动传入对应字段名
<JoditEditor 
  required 
  className='s' 
  name='s' 
  value={s} 
  onChange={(newContent) => handleChange('s', newContent)}
/>
补充说明
  • 绝大多数React第三方富文本组件的onChange回调都不会返回标准事件对象,默认直接抛出编辑器最新内容,不要套用原生input的事件处理逻辑写这类组件的交互
  • 这种手动传字段名的写法兼容性更强,不会因为组件版本迭代调整回调参数结构就出现运行时报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:48:24