簡體   English   中英

React Quill 導致重新渲染<input>在 Quill 的編輯器之外

[英]React Quill causes rerender of <input> outside of Quill's editor

我的組件中有以下 React 代碼:

     const TextEditor = () => {
     const [richTextValue, setRichTextValue] = useState('');
     const [storyTitle, setStoryTitle] = useState('');
        
     const handleRichEditorOnChange = (content, delta, source, editor) => {
                setRichTextValue(editor.getHTML());
     }
        
     const handleTitleChange = event => {
                setStoryTitle(event.target.value);
     }
        
     return (
                    <>
                        <input type="text"
                               placeholder="Title"
                               value={storyTitle}
                               onChange={handleTitleChange}/>
                        <ReactQuill theme="snow"
                                    value={richTextValue}
                                    onChange={handleRichEditorOnChange}/>
                    </>
    )
}

如果我在<input>元素中輸入任何內容,我會在輸入每個字母后失去焦點,因為 Quill 會以某種方式導致重新渲染,並得到錯誤“當 React 已經在渲染時無法刷新更新”。 但是,如果我刪除ReactQuill元素,輸入的行為是正常的,我不會在控制台中收到任何錯誤。

這種奇怪和意想不到的行為背后的原因是什么?如何解決?

沒關系。 我有:

if (richTextEditorRef.current) {
    richTextEditorRef.current.focus();
}

在添加輸入之前的代碼中,現在我發現它迫使 React 專注於 Quill 編輯器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM