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

在线构建的自定义CKEditor在React中报错this.props.editor.create is not a function

问题解决步骤

this.props.editor.create is not a function 报错的本质是你传入React组件的编辑器实例不合法,没有暴露CKEditor要求的静态create方法,按照以下优先级排查:

  • 第一步:检查自定义构建的包导入路径是否正确
    你注释掉的import Editor from 'ckeditor5-custom-build/build/ckeditor';才是在线构建生成包的默认导入路径,你现在用的@ckeditor/ckeditor5-build-custom是官方预设包的命名规则,如果你没有把自己生成的自定义构建重新发布为这个名字的npm包,这个导入的就是空对象或者错误内容。
    直接恢复注释的导入语句,把传入组件的editor属性改成editor={Editor}即可,修改后的代码参考:
    // 替换错误的导入语句
    import Editor from 'ckeditor5-custom-build/build/ckeditor';
    // 调用时传入正确的实例
    <CKEditor
      editor={Editor}
      // 其余配置保持不变
    />
    
  • 第二步:确认自定义构建包的安装方式正确
    你提到把生成的构建包放到了node_modules里,这种本地包安装不能直接复制粘贴文件夹,要在项目根目录执行npm install 你的自定义构建文件夹的本地绝对/相对路径,比如你把构建包放在项目根目录的ckeditor5文件夹下,就执行npm install ./ckeditor5,npm会自动完成包注册,避免导入时识别失败。
  • 第三步:检查在线构建的编辑器类型是否匹配
    你用的React CKEditor组件支持所有官方编辑器类型,如果在线构建时选的是DecoupledEditor/InlineEditor等非ClassicEditor类型,也不会影响功能,只要导入的是构建包导出的默认实例即可,不需要额外修改类型命名。
  • 第四步:排查版本匹配问题
    确保你安装的@ckeditor/ckeditor5-react组件的大版本和你自定义构建的CKEditor 5大版本一致,比如自定义构建用的是CKEditor 39.x版本,react组件也要用39.x对应版本,版本跨度过大会出现实例不兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 00:36:07