2016-12-11 3 views
2

У меня проблемы с расширением Quill.Возникли проблемы с продолжением Quill

Я хочу изменить List и ListItem классы в Quill, поэтому я попытался скопировать 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

Выяснил это (хорошо, коллега сделал).

мне нужно импортировать Пергамент, как так: -

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

вместо import Parchment from 'parchment';

Это потому, что вы в конечном итоге с другой статический класс Пергамент к используемому внутренне Quill, так попросив Quill для его примера, вы оба работаете с одним и тем же (т. е. тем, где были зарегистрированы пятна).

+0

Как я могу указать здесь тип? – KimchiMan

1

Я столкнулся с этой проблемой пару часов назад.

В исходном коде Quill List является экспорт по умолчанию, а ListItem - это именованный экспорт.

Так что ваш импорт должен выглядеть следующим образом:

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

Обязательно экспортировать их соответствующим образом на вашем пользовательском файле list.js.

Удачи вам!

+1

Сообщите мне, если он по-прежнему не работает, поэтому я могу вам помочь. Если это решило вашу проблему, подумайте о том, чтобы этот ответ был правильным. Я новичок в SO, и это тоже помогло бы мне :-) спасибо –

+0

Спасибо, я изменил экспорт в своей копии, чтобы выше было хорошо. Я понял, что это связано с импортом пергамента, поэтому я опубликовал объяснение. –

Смежные вопросы