【问题标题】:How to change the value using data object in code mirror如何使用代码镜像中的数据对象更改值
【发布时间】:2021-07-18 14:37:03
【问题描述】:

我将 react-codemirror2 用于在线代码编辑器类型的项目。我想实现自己的实时协作平台。在 quill js 中,我们可以使用 delta 对象来执行此操作。在代码镜像中,我们可以从 onBeforeChange 事件处理程序中获取“数据”对象。有什么方法可以使用像 delta 对象这样的数据对象? (隐瞒编辑的价值,反之亦然)

【问题讨论】:

    标签: javascript reactjs codemirror react-codemirror2


    【解决方案1】:

    我终于找到了一种方法来做到这一点。我必须使用另一个单独的 codemirror 实例来获取它。

    const mirror = cm(function () { }, {});
    const mirrorChange = (editor, deferred) => {
        var doc = editor.getDoc();
    
        if (deferred.origin === 'undo') {
            doc.setHistory(mirror.getHistory());
            mirror.undo();
        } else if (deferred.origin === 'redo') {
            doc.setHistory(mirror.getHistory());
            mirror.redo();
        } else {
            mirror.replaceRange(deferred.text, deferred.from, deferred.to, deferred.origin);
        }
    
        return mirror.getValue();
    }
    

    在这里我可以在 onBeforeChange 处理程序中使用这个函数。由于我正在维护另一个 codemirror 实例,因此这不是一个更好的解决方案。所以如果有人可以改进这个答案,请告诉我

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      • 2023-03-21
      • 1970-01-01
      • 2012-01-31
      • 2021-06-24
      • 1970-01-01
      • 2020-02-27
      相关资源
      最近更新 更多