Я столкнулся с проблемой при создании текстового редактора с поддержкой тегов на основе изображений. Необходимо перемещать эти теги свободно в тексте, что делает этот вопрос непрактичным.Непоследовательное поведение перемещения изображения в quilljs с реагированием
В основном, когда я начинаю перетаскивать изображение, а затем отбрасываю его в нужное место, может произойти один из двух результатов: A) он работает по назначению и B) изображение отбрасывается до конца/начала предложения. Вы можете увидеть поведение в прикрепленном gif. Resulting behavior
Я использую комбинацию реакции и машинописного текста для создания страницы с вставленным в компонент компонентом.
// TextEditor/index.tsx
import * as React from 'react';
import * as Quill from 'quill';
import { TextEditorState, TextEditorProps } from '../@types';
import { generateDelta } from '../@utils/generateDelta';
const formats = [
'image'
];
class TextEditor extends React.Component<TextEditorProps, TextEditorState> {
constructor(props: TextEditorProps) {
super(props);
this.state = {
Editor: undefined
}
}
componentDidMount() {
const self = this;
this.setState({Editor: new Quill('#editor-container', {formats: formats, debug: 'warn'})});
}
changeText(text: string) {
if(typeof(this.state.Editor) !== 'undefined') {
this.state.Editor.setContents(generateDelta(text), 'api');
}
}
render() {
return (
<div id="editor-container"></div>
);
}
}
export default TextEditor;
И использование этого компонента в другом компоненте просто
// editor.tsx
import TextEditor from '../QuillEditor/TextEditor';
...
onUpdate(text: string) {
this.refs.targetEditor.changeText(text);
}
...
render() {
return (
...
<TextEditor
ref={'targetEditor'}
/>
...
)
}
Я попытался изменить текстовый редактор просто contentEditable ДИВ и который работал безупречно, так что это не должно быть из-за некоторого css gl зуд.
У кого-нибудь есть представление о том, что может быть причиной этого?
EDIT 6 февраля: я обнаружил, что эта проблема проявляется только в Chrome, так как IE и MS края не столкнулись с этой проблемой. Я попытался отключить все расширения, но проблема все еще существует. Частный режим также не помог.