У меня есть оболочка компонента в antd
Form.create()
HOC, где я хочу реализовать проверку для моего редактора 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
и пытаюсь проверить, что внутри текстового поля:
Допустим, мое текстовое поле изначально пусто. Я набираю букву «а», и она вызывает функцию 3 раза. Сначала он показывает, что текстовое поле содержит букву «а», затем снова вызывает функцию, показывая, что поле пусто, а затем снова появляется третья буква «а». Это поведение сохраняется, пока я продолжаю печатать. Кроме того, есть предупреждение о том, что addRange(): The given range isn't in document.
я понятия не имею, что это значит.
Я боролся с этой проблемой в течение нескольких дней, любая помощь будет принята с благодарностью. Спасибо