我在 HOC 中有一个组件包装器antd
Form.create()
,我想在其中为我的react-quill
编辑器实现验证。
<Form.Item>
{getFieldDecorator('input', {
rules: [RequiredRule],
initialValue: text,
onChange: this.onChangeText
})(
<ReactQuill
className="question-form__rich-text"
modules={quillToolbar}
/>,
)}
</Form.Item>
如果我开始在我的quill
编辑器文本字段中输入内容,它会触发该onChangeText
函数,该函数又会更改本地状态并启动组件的重新渲染
onChangeText = (_, __, ___, editor) => {
this.setState({
textVal: editor.getText(),
});
};
this.state = {
textVal: '',
};
每次组件重新呈现时,我的文本字段都会失去焦点,因此我必须在字段内单击以键入另一个字母。我注意到只有当<ReactQuill>
组件被包裹时才会发生这种情况antd
<Form.Item>
如果我放入函数并尝试检查文本字段中的内容,它也会显示一些奇怪console.log
的onChangeText
行为:
假设我的文本字段最初是空的。我输入字母“a”,它会调用该函数 3 次。首先,它显示文本字段包含字母“a”,然后再次调用该函数显示该字段为空,然后第三次出现字母“a”。当我继续打字时,这种行为仍然存在。另外,有一个警告说addRange(): The given range isn't in document.
我不知道它是什么意思。
几天来我一直在努力解决这个问题,任何帮助将不胜感激。谢谢