Javascript 无法访问模块函数中的quill实例

Javascript 无法访问模块函数中的quill实例,javascript,reactjs,closures,quill,Javascript,Reactjs,Closures,Quill,我有: 我正在使用,如果有关系的话 当我尝试访问onSelect函数中的quill实例时,我得到: const formats = ['header', 'bold', 'italic', 'underline', 'list', 'prediction', 'accepted', 'mention']; const modules = { mention: { allowedChars: /^[a-zA-Z0-9_]*$/,

我有:

我正在使用,如果有关系的话

当我尝试访问
onSelect
函数中的
quill
实例时,我得到:

    const formats = ['header', 'bold', 'italic', 'underline', 'list', 'prediction', 'accepted', 'mention'];
    const modules = {
        mention: {
            allowedChars: /^[a-zA-Z0-9_]*$/,
            mentionDenotationChars: ['@'],
            showDenotationChar: false,
            spaceAfterInsert: false,
            onSelect: (item, insertItem) => {
                clearDocumentState(0)
                const cursorPos = quill.getSelection()
                console.log({ cursorPos })
                insertItem(item)
            },
            source: () => { }
        },
        toolbar: [
            ['bold', 'italic', 'underline'],
            [{ list: 'ordered' }, { list: 'bullet' }],
            [{ header: [1, 2, false] }],
            ['clean']
        ]
    };

    const { quill, quillRef, Quill } = useQuill({
        formats,
        modules,
        placeholder: 'Start writing something amazing...'
    });

我假设该函数以某种方式被缓存,而
quill
尚未定义。有没有办法获取该实例?

当quill有值时,您可以在
useffect
块中设置
onSelect
回调。用于获取
提及
模块并设置相应的
选项

TypeError: Cannot read property 'getSelection' of undefined

不确定quill是什么,但您是否尝试将useQuill置于模块声明之上?我不能,因为我在定义
quill
时需要
modules
,并且无法在useEffect上使用quill的依赖项注册您的提及模块,因此如果它存在,那么您注册“提及”模块?
 React.useEffect(() => {
    if (quill) {
      quill.getModule('mention').options.onSelect = ((item, insertItem) => {
        clearDocumentState(0);
        const cursorPos = quill.getSelection();
        console.log({ cursorPos });
        insertItem(item);
      });
    }
  }, [quill]);