问题标签 [slatejs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
33 浏览

reactjs - Slatejs:如何查询和更新现有节点?

我正在尝试做这样的事情来更新和已经存在的节点,但是文档并不清楚。

0 投票
1 回答
46 浏览

javascript - 如何在不丢失文本选择的情况下创建超链接插入模式?

我有一个使用 Slate-React ( https://docs.slatejs.org/libraries/slate-react ) 创建富文本输入字段的 React 站点。Slate 使用浏览器的prompt()功能将超链接应用于所选文本,但我需要能够设置提示模式的样式,因此我必须找到替代方法。但是,如果我创建一个带有输入字段的简单 Javascript 弹出窗口,则一旦将焦点应用于模态框,就会取消选择所选文本,因此不会插入任何链接。

有没有办法将焦点移到另一个元素,同时仍然保持选中原始文本?

本质上,我正在尝试模拟 Google Docs 使用的插入超链接功能/样式: Google Docs 添加超链接模式

0 投票
1 回答
42 浏览

javascript - Slatejs 在换行后重置元素类型

我正在使用 slatejs,我想知道:

如果我当前的 Element.type 是title, 看起来像<h1></h1>
但是当我单击 时enter,它将创建一个新<h1>标签。

如果我想在类型之后换行title并且新元素类型将成为默认类型,我该怎么办?

0 投票
0 回答
64 浏览

javascript - SlateJS 将粗体应用于正则表达式匹配

我正在尝试在 slatejs 编辑器中对 **text** 应用粗体,到目前为止我的尝试没有成功。
我遇到了这个答案,这似乎是解决问题的可能方法。

但是,在修改该答案后,它仍然拒绝应用粗体。

我尝试添加match: n => Text.isText(n),这使整个段落变得粗体。

预期结果:**文本** => **文本**

实际结果:**文本** => **文本**

我该如何修改它以按预期工作?

编辑:尝试了这个并得到了预期的结果,但随之而来的是一个错误。

错误信息:

0 投票
0 回答
25 浏览

reactjs - 如何将第三方插件添加到我的 Slate 编辑器中?

大家好,我目前正在使用 SlateJs 构建我的个人博客。

我想为编辑器采用一些有用的第三方插件

但我无法让它工作。

下面的代码来自官方 Slate(v0.66.1) 文档,我用这段代码构建了我的编辑器。

在拥有了我非常基本的编辑器之后,我发现了一些有用的第三方插件来让我的编辑器更强大。 https://convertkit-slate-plugins.netlify.app/plugins/slate-lists

但是他们将插件与 Slate 编辑器集成的方式有点不同。

他们只使用 <Editor> 而不是用 <Slate> 组件包裹的 <Editable>,

在 <Editor> 中,它们具有 <Editable> 所没有的 plugins 属性。

下面的代码来自插件的文档,我猜它是为在 Slate v.047 中工作而编写的

我认为他们初始化编辑器的方式取决于版本。

但我想知道是否有人有想法将插件集成到我的编辑器中?

感谢您的时间!!

0 投票
0 回答
28 浏览

javascript - 如何在 SlateJS 编辑器 DOM 中注入新元素

如何将新的反应组件/元素注入 SlateJS 编辑器 DOM?

我想在 SlateJS 编辑器的 DOM 中注入一个新元素,而不是高于或低于。

SlateJS 的大多数示例都会转换节点,但它不允许直接注入到 SlateJS DOM 中。那是在编辑器上下文中。

例如

现在,您可以在 SlateJS 编辑器上方或下方添加新的 react 组件,但不能在内部添加。

我当前的解决方案是尝试通过 ReactDOM 注入,但我无法获取实际的 SlateJS 组件,因为我无法设置 ID,从而使 document.query 变得困难。

我如何在 SlateJS dom 中注入一个新的 react 组件?

0 投票
1 回答
28 浏览

javascript - 如何更改 SlateJS 节点元素 onChange 的属性?

如何在 SlateJS OnChange 方法中更改节点元素属性?

我有一个像以前一样的初始元素,注意“id”属性吗?在 OnChange 中,我想动态设置 id 属性。见下文实现,或多或少只是 SlateJs 的基本反应设置

板岩反应组件

但是,它说 .id 属性是只读的。如果我尝试设置整个对象,也会发生同样的情况。它是只读的。通过 currTextContent[0].newID 添加新属性也会出错,对象不可扩展

如何在 onChange 方法中更改(或添加)SlateJS 节点的元素属性?在 Editor 类中是否有一些功能可以做到这一点?

0 投票
1 回答
23 浏览

javascript - 使用 React onEffect 设置新的初始 SlateJS 编辑器值

如何使用 React onEffect 挂钩轻松设置整个 SlateJS 编辑器值?

初始编辑器值是在创建 useState 钩子时设置的,但是,我想在之后设置一个新的初始值。

目前,我们可以通过使用 Transform 删除所有元素然后插入新元素来做到这一点,但这是一种更简单的方法,比如覆盖所有?我似乎在 SlateJS 文档中找不到它。

保存到数据库 slatejs 示例不起作用,但这是我的设置功能