React中使用Quill编辑器时,如何实时同步内容到state?
在React项目里用@react-quill集成富文本编辑器,但发现内容变化时state没有及时更新。我尝试监听onChange事件,但控制台只在初始化时触发一次…
import React, { useState, useEffect } from 'react';
import Quill from 'react-quill';
const Editor = () => {
const [content, setContent] = useState('');
useEffect(() => {
const quill = new Quill('#editor');
quill.on('change', () => {
setContent(quill.root.innerHTML);
});
}, []);
return ;
};
export default Editor;
这样写的话输入内容时state还是没反应,控制台也没有报错。是不是事件监听的方式有问题?或者需要在组件里用ref管理实例?
正确的做法是直接用
@react-quill提供的onChange属性来同步内容到 state。下面是改好的代码:关键点:
1. 不要用原生 Quill 的实例,
@react-quill已经封装好了2.
value和onChange配合使用,就能实时同步内容了我之前也是乱用原生 API 结果折腾半天,后来才发现官方文档里早就写明白了,就是有时候我们容易忽略这些细节。