javascript - CKEditor 5 React 自定义图片上传
问题描述
我花了一整天的时间试图让 CKEditor 与 React 一起工作。一切似乎都很好,除了图像。我
我已经有办法将图像上传到我的服务器(天蓝色)。我只需要知道如何使用 React 将它连接到 CKEditor!我不断收到错误“未定义上传适配器”。
<CKEditor
editor={ ClassicEditor }
data={this.state.body ? this.state.body : "<p>Body text...</p>"}
onInit={ editor => {
// You can store the "editor" and use when it is needed.
console.log( 'Editor is ready to use!', editor );
} }
onChange={ ( event, editor ) => {
const data = editor.getData();
console.log( { event, editor, data,}, "DATA" );
} }
// config={upload=this.uploadImage()}
/>
我猜它与配置文件有关?我已经有了上传文件并返回 URL 的函数,我只是不知道在哪里将它添加到 React 中的 CKEditor 中。
解决方案
该错误意味着没有连接上传适配器。
首先,您需要实现自己的自定义上传适配器来处理将图像上传到服务器。此 Stack Overflow 响应中有一个示例
然后,您将编辑器链接到您的onInit
方法中的上传适配器。像这样:
<CKEditor
editor={ClassicEditor}
data={this.state.body ? this.state.body : "<p>Body text…</p>"}
onInit={editor => {
// Connect the upload adapter using code below
editor.plugins.get("FileRepository").createUploadAdapter = function(loader) {
return new UploadAdapter(loader);
};
console.log("Editor is ready to use!", editor);
}}
onChange={(event, editor) => {
const data = editor.getData();
console.log({ event, editor, data }, "DATA");
}}
/>
UploaderAdapter
代码中是您的 UploadAdapter 类实现的名称。
推荐阅读
- java - 在 Saucelabs 中找不到下载的文件
- c# - 无法将 Microsoft.Azure.Cosmos.Table.DynamicTableEntity 转换为 System.Threading.Task.Task
- javascript - 如何在 react 应用程序中从 package.json 访问主页?
- spring-boot - spring-boot-starter-aop 仅适用于开源项目
- javascript - 使用来自就绪函数的参数将正确的上下文传递给函数
- python - 如何在 Python 中进行循环(子)排序?
- c++ - 没有默认构造函数的成员对象的 C++ 初始化:
- c++ - 有没有办法使用 C++17 折叠表达式来实现这一点?
- python - 如何强制python将变量保留在内存(缓存)中?
- python-3.x - STDERR:错误:找不到满足要求的版本 Brlapi==0.7.0 错误:没有找到与 Brlapi==0.7.0 匹配的发行版