1

我在使用 CodeMirror 时遇到问题。我正在尝试添加实时号码清理,类似于 Brett Victor 的示例,以及可汗学院的能力,但我没有太多运气。

我无法发布链接,但我发现这个库可以完成工作(由 GitHub 上的用户 FWeinb 制作),它可以完成我正在寻找的东西,但我注意到虽然数字似乎已更改,只要我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>,但实际的基础数据没有用洗涤器更新,也没有持久化。任何人都可以阐明我应该在这里做什么,以便编辑器中的变量值随着洗涤器实时更新,并且该值在新操作时仍然存在?

4

0 回答 0