Изменение значений чисел в CodeMirror с помощью аддона очистки
У меня проблемы с CodeMirror. Я пытаюсь добавить в живую чистку чисел, подобный примеру Бретта Виктора, и возможности Академии Хана, но мне не слишком везет.
Я не могу публиковать ссылки, но я нашел эту библиотеку, которая выполняет свою работу (сделанную пользователем FWeinb на GitHub), которая может отчасти выполнить то, что я ищу, но я заметил, что, хотя цифры кажутся были изменены, как только я сделаю что-то вроде нажатия Enter в CodeMirror, тогда значение переменной сбрасывается до того, что было изначально.
Я использую ReactJS, и я не слишком уверен, как это исправить. Я пытаюсь что-то немного нелепо, звоня this.replaceRange
каждый раз, когда содержимое меняется, но должен быть лучший способ. Вот фрагмент моего кода. Это не то, что я хочу, чтобы это было идеально, а просто для целей тестирования:
this.cm.on('dblclick', this.handleDblClick.bind(this))
...
handleDblClick() {
let matches = document.querySelectorAll(".cm-number");
let scrub = new Scrubbing (matches[0],
{ driver :
[
Scrubbing.driver.Mouse,
Scrubbing.driver.MouseWheel,
Scrubbing.driver.Touch
]
})
matches[0].addEventListener('DOMSubtreeModified', () => {
//console.log('change detected')
})
}
Итак, я знаю, что в настоящее время скруббер редактирует это: <span class="cm-number"></span>
, но фактические базовые данные не обновляются с помощью скруббера и не сохраняются. Может кто-нибудь пролить некоторый свет на то, что я должен делать здесь, чтобы значение переменной в редакторе обновлялось в реальном времени с помощью скруббера, и чтобы значение сохранялось при новом действии?