在扩展Quill时遇到问题

时间:2016-12-11 13:00:42

标签: import ecmascript-6 quill parchment

我在扩展Quill方面遇到了一些问题。

我想修改Quill中的ListListItem类,因此我尝试将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');

我导入错误的方式是什么?导致错误的原因是什么?

2 个答案:

答案 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文件中正确导出它们。

祝你好运!