扩展 Quill 时遇到问题

Having problems extending Quill

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

我想修改 Quill 中的 ListListItem class,所以我尝试将 formats/list.js 复制到我的代码库中作为起点。然后我导入我的本地副本并像这样用 Quill 注册它...

import { List, ListItem } from './quill/list';

Quill.register({
    'formats/list': List,
    'formats/list/item': ListItem
}, true);

但是,当我尝试在编辑器中创建列表时,代码在列表 class 中崩溃并出现以下错误:

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');

是我导入的方式不对吗?是什么导致了错误?

几个小时前我遇到了这个问题。

在 Quill 的源代码中,List 是默认导出,而 ListItem 是命名导出。

因此您的导入应如下所示:

import List, { ListItem } from './quill/list';

请务必将它们正确地导出到您的自定义 list.js 文件中。

祝你好运!

想出来了(一位同事做得很好)。

我需要像这样导入 Parchment :-

let Parchment = Quill.import('parchment');

而不是import Parchment from 'parchment';

这是因为您最终会得到与 Quill 内部使用的静态 Parchment class 不同的静态 Parchment,因此向 Quill 询问它的实例可确保你们都使用同一个(即,一个印迹被登记的地方)。