#javascript #reactjs #tinymce
#javascript #reactjs #tinymce
Вопрос:
Я использую TinyMCE в своем приложении reactjs. Событие onChange будет запущено один раз, правильно отражая входные данные в предупреждении. Тогда я ничего не получаю.
Вот соответствующий код:
<Editor init={{
statusbar: false,
menubar: false,
}}
onChange={this.SetText}
/>
Метод onChange:
SetText(e) {
alert(e.target.getContent());
}
Ответ №1:
На самом деле событие, которое вы используете, неверно. Для плагина ReactJS у них есть onEditorChange. Вы можете использовать его следующим образом
<Editor
apiKey="MyAPIKey"
initialValue=""
init={{
height: 500,
menubar: false,
plugins: [
'advlist autolink lists link image charmap print preview anchor',
'searchreplace visualblocks code fullscreen',
'insertdatetime media table paste code help wordcount'
],
toolbar:
'undo redo | formatselect | bold italic backcolor |
alignleft aligncenter alignright alignjustify |
bullist numlist outdent indent | removeformat | help'
}}
onEditorChange={this.onChange}
/>
а затем вы можете получить доступ к содержимому редактора, используя
onChange = (content) => {
console.log(content);
}
e.target
не требуется
Комментарии:
1. В итоге я выбрал другой редактор, но только сейчас понял, что вы дали правильный ответ. Спасибо
Ответ №2:
Может быть, одно из этих событий проходит лучше, чем onChange?
- Нажатие клавиши — срабатывает при нажатии клавиши в редакторе.
- Нажатие клавиши — срабатывает при нажатии клавиши в редакторе.
- KeyUp — срабатывает при освобождении ключа в редакторе.
Комментарии:
1. Ну, я думаю, я должен придерживаться собственных событий reactjs при изменении состояния, не так ли? В любом случае я могу поиграть с ними, потому что сейчас я в растерянности.
2. Я думаю, что вы можете изменить состояние с помощью событий TinyMCE. Но вы должны связать свою функцию в конструкторе (или использовать функцию массива), чтобы получить контекст компонента в методе события.
3. Да. Что ж, я попробую немного. Если это окажется жизнеспособным, и никто не сможет ответить, почему onChange запускается только один раз, я проверю вас на решение. Спасибо