首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SlateJS: slate-core编辑器不更新模拟onKeyDown事件的值

SlateJS: slate-core编辑器不更新模拟onKeyDown事件的值
EN

Stack Overflow用户
提问于 2019-08-04 13:56:53
回答 1查看 471关注 0票数 7

我正在尝试从slate-coreEditor上模拟onKeyDown事件--而不是slate-react --来测试我正在开发的一些插件。然而,Editor并没有更新它的Value

我广泛地查看了SlateJS 0.47.x documentation,从我可以断定的情况来看,Editor组件应该对onKeyDown事件进行开箱即用的响应。

这是重现我的问题的a small codesandbox example

^请注意,尽管我试图模拟许多onKeyDown事件--在文件core-editor-is-not-responding-to-on-key-down-events.js中--但Editor的值从不更新;它仍然是一个空白文档。

我担心这种行为的差异,因为当我认为插入文本的功能已经存在时,我似乎需要重写插入文本的功能。

任何帮助都将令人难以置信的感激!

EN

回答 1

Stack Overflow用户

发布于 2021-10-19 20:03:43

因此,正如@devinm所提到的,这是Slate-Core中的一个bug。如果没有Slate- react,它就不能正确地对onKeyDown做出反应。

我不知道如何将它打包以供其他人使用,而且这个问题影响了许多Slate版本,所以我认为最好的事情是解释一下无论如何都需要做什么。

请注意,您的环境需要支持ES6导入。

对于您正在使用的受影响的版本(0.44.x到0.47.x),请转到板岩代码库,找到slate-react/plugins/DOMPlugin files

  • Copy将目录内容放入项目中名为slate-react-dom-plugin

  • Copy的新文件夹中,并将这些目录放入slate-react-dom-plugin/index.js文件旁边的路径中- utilsconstants将每个模块的导入路径与其新结构相匹配(请注意,您实际上并不需要utils文件夹中的每个文件,只使用DOMPlugin引用的插件,但复制整个文件夹会更容易)使用以下插件configuration:

创建测试编辑器)

代码语言:javascript
复制
  new Editor({
    value: value
    plugins: [DOMPlugin({ plugins: [...ANY_OTHER_PLUGINS] })], // Wrap any plugins you use with the DOMPlugin
  });

  1. 运行您的测试,它现在应该会像预期的那样触发onKeyDown事件

如果你有任何问题,请告诉我!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57344179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档