Open hsuna opened 1 month ago
我期望wangEditor的表现类似普通控件,如果是手动setHtml
的情况,不应该onChange
才对,如下:
const App = () => {
const [value, setValue] = useState("");
useEffect(() => {
setTimeout(() => {
setValue("test");
}, 1000);
}, []);
const hanleChange = (evt) => {
console.log("hanleChange => ", evt);
};
return <textarea value={value} onChange={hanleChange} />;
};
即便我延迟setValue
了,焦点也在输入框中,hanleChange
事件依然不会触发,这才是控件本应该的表现,否则这里处理时,心智太高了
这样的问题我觉得,是因为非标的value
在进行规格化后,与原先的value
不等才导致触发onChange
的;
就像当我设置value
默认为空字符串时,在未做任何操作的情况下,最终获取到的value
却是<p><br></p>
而导致事件触发;
但我开发的本能直觉却会觉得,即使我setHtml
是非标的数据,只要我未对其进行改动,那获取回来的值,依然还是原有的才对,类似纯展示的场景。
之所以有此疑惑,还是因为我这边的需求入库的数据是md格式,所以才会有需要对html
格式进行额外的transform
,而额外的onChange
,会让处理变得过于怪异且存在心智负担。
类似文档中的demo,当我打开页面时,config.onChange
事件直接触发了,这太过反直觉了。
code
result
嗯,确实这个应该是在 onCreated 时触发的,我看看怎么改下吧,你有思路吗,这个得在 editor 包改,for-react 不需要变动。
稍微看了下堆栈,似乎是Slate
触发的事件,我尝试写了个demo,发现 Slate
一旦获取焦点,就触发onChane
了
bug 描述
onChange
事件会被触发;你预期的样子是?
onChange
事件。系统和浏览器及版本号
wangEditor-next 版本
demo 能否复现该 bug ?
能
最小成本的复现步骤