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