我在扩展Quill方面遇到了一些问题。
我想修改Quill中的List
和ListItem
类,因此我尝试将formats/list.js
复制到我的代码库中作为起点。然后我导入我的本地副本并将其注册到Quill,就像这样......
import { List, ListItem } from './quill/list';
Quill.register({
'formats/list': List,
'formats/list/item': ListItem
}, true);
但是,当我尝试在编辑器中创建列表时,代码在List类中崩溃并出现以下错误:
ParchmentError {message: "[Parchment] Unable to create list-item blot", name: "ParchmentError"}
这就发生在这一行...... https://github.com/quilljs/quill/blob/develop/formats/list.js#L99
我认为这与我被迫改变的进口有关,但我无法弄清楚出了什么问题。我没有对list.js做任何其他更改。原始文件包含以下内容: -
import Block from '../blots/block';
import Container from '../blots/container';
我改为: -
import Quill from 'quill';
let Block = Quill.import('blots/block');
let Container = Quill.import('blots/container');
我导入错误的方式是什么?导致错误的原因是什么?
答案 0 :(得分:5)
想出来(好吧,一位同事)。
我需要像这样导入羊皮纸: -
let Parchment = Quill.import('parchment');
而不是import Parchment from 'parchment';
这是因为你最终会得到一个与Quill内部使用的静态Parchment类不同的静态Parchment类,所以向Quill请求它的实例可以确保你同时使用相同的一个(即,那些blots被注册的那个) )。
答案 1 :(得分:2)
几个小时前我遇到了这个问题。
在Quill的源代码中,List
是默认导出,ListItem
是命名导出。
所以你的导入应该是这样的:
import List, { ListItem } from './quill/list';
请务必在自定义list.js
文件中正确导出它们。