gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:26:57 25 4
gpt4 key购买 nike

我正在尝试模拟 onKeyDown Editor 上的事件来自 slate-core -- 相对于 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 的值从不更新;它仍然是一个空白文档。
我担心这种行为差异,因为当我认为所述功能已经存在时,我似乎需要重新编写插入文本的功能。
任何帮助将不胜感激!

最佳答案

因此,正如@devinm 所提到的,它原来是 Slate-Core 中的一个错误。如果没有 Slate-React,它将无法正确响应 onKeyDown .

我不知道如何将它捆绑起来供其他人使用,而且这个问题也会影响许多 Slate 版本,所以我认为最好的办法是解释无论如何需要做什么。
请注意,您的环境需要支持 ES6 导入。

  • 转到您正在使用的受影响版本的 Slate 代码库(0.44.x 到 0.47.x)并找到 slate-react/plugins/DOMPlugin files
  • 将目录的内容复制到项目中名为 slate-react-dom-plugin 的新文件夹中。
  • 将这些目录复制到 slate-react-dom-plugin/index.js 旁边的路径中文件 - utilsconstants (again, from slate-react)
  • 更新每个模块的导入路径以匹配它们的新结构(请注意,您实际上并不需要 utils 文件夹中的每个文件,只需要 DOMPlugin 引用的文件,但复制整个文件夹更容易)
  • 在您的测试中使用 import DOMPlugin from './slate-react-dom-plugin'
  • 创建测试编辑器时,使用以下插件配置:

  •   new Editor({
    value: value
    plugins: [DOMPlugin({ plugins: [...ANY_OTHER_PLUGINS] })], // Wrap any plugins you use with the DOMPlugin
    });
  • 运行你的测试,它应该会触发 onKeyDown现在预期的事件

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

    关于javascript - SlateJS:slate-core 编辑器不更新模拟 onKeyDown 事件的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57344179/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com