Javascript 由于某些原因,QuillJS选择更改缓存结果

Javascript 由于某些原因,QuillJS选择更改缓存结果,javascript,typescript,quill,Javascript,Typescript,Quill,我有: 但是documentState.predictionStatus保持其原始值。我想可能是因为值被缓存了 有办法解决吗 谢谢 您的代码是这样的吗 const[documentState,setDocumentState]=useState(); useffect(()=>{ 如果(羽毛笔){ 羽毛笔。剪贴板。危险粘贴HTML(文档内容); 羽毛笔上的('text-change',()=>{ setDocumentContent(quill.root.innerHTML); }); 羽毛笔打

我有:

但是
documentState.predictionStatus
保持其原始值。我想可能是因为值被缓存了

有办法解决吗


谢谢

您的代码是这样的吗

const[documentState,setDocumentState]=useState();
useffect(()=>{
如果(羽毛笔){
羽毛笔。剪贴板。危险粘贴HTML(文档内容);
羽毛笔上的('text-change',()=>{
setDocumentContent(quill.root.innerHTML);
});
羽毛笔打开('selection-change',(范围、旧范围、来源)=>{
console.log(documentState?.predictionStatus、范围、旧范围、源);
})
}
},[羽毛笔];
您正试图访问
quill.on
的处理程序函数中的
documentstatus?.predictionStatus
,这可能会导致错误,因为传递给
quill.on
的函数只记得
documentState
的原始值(因为
关闭

要解决此问题,请将
useRef
改为
documentState

const documentRef=useRef();
useffect(()=>{
如果(羽毛笔){
羽毛笔。剪贴板。危险粘贴HTML(文档内容);
羽毛笔上的('text-change',()=>{
setDocumentContent(quill.root.innerHTML);
});
羽毛笔打开('selection-change',(范围、旧范围、来源)=>{
console.log(documentRef.current?.predictionStatus、range、oldRange、source);
})
}
},[羽毛笔];
///在代码的某个地方更新documentRef
documentRef.current=newValue

documentState来自哪里?
    useEffect(() => {
        if (quill) {
            quill.clipboard.dangerouslyPasteHTML(documentContent);
            quill.on('text-change', () => {
                setDocumentContent(quill.root.innerHTML);
            });

            quill.on('selection-change', (range, oldRange, source) => {
                console.log(documentState?.predictionStatus, range, oldRange, source);
            })

        }
    }, [quill]);