问题标签 [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 回答
194 浏览

reactjs - 在当前块之后添加新块的问题

我正在尝试在光标所在的块/我单击按钮的块之后添加一个新块。

我的问题是:

  • 如何确定当前块的路径?
  • 之后我可以使用哪种方法添加块?我使用insertNode但你不能在调用它时指定路径......所以该块被添加到块列表的最后。

我看到该insertNode方法有一个可选参数,但它没有记录并且似乎不起作用:

谢谢,蒂埃里

0 投票
2 回答
2746 浏览

javascript - 在选定区域插入新节点时,Slate.js 会引发错误

相关代码块:

具体来说,它总是在insertTemplateBlock函数的第二行中断,并给出如下错误:

这在他们提到的例子中没有发生,它使用了类似的逻辑。任何帮助,将不胜感激!

Codesandbox:https ://codesandbox.io/s/elastic-turing-dv9bm?file=/src/App.tsx

更新:我发现这个问题可以通过将插入逻辑(当前在 if 语句中)移动到一个useEffect挂钩来避免,具体取决于target包含选择的值,类似于 Slate 的提及示例的工作方式。但是,我仍然很想知道为什么 Slate 会像我以问题陈述的方式编写它时那样中断。

0 投票
0 回答
181 浏览

javascript - Slatejs 和 React-select:setNodes 在渲染时导致无限递归?

在我的 Slate.js 编辑器的自定义元素中,我有更新元素属性的逻辑:

这个想法是您可以用来react-select在模板字段中创建和选择值。但是,当调用Transforms.setNodes更新 Slate DOM 中的节点属性时,React 给我一个无限循环错误,说它重新渲染太多次。逻辑本身类似于 Slate 网站上的嵌入示例。这里发生了什么?如何修复?

这里的代码沙盒: https ://codesandbox.io/s/compassionate-meadow-fbrne ?file=/src/App.tsx

0 投票
0 回答
94 浏览

javascript - mdast-util-to-markdown:防止列表项之间发生换行符?

对于某些上下文,我正在尝试构建一个基于 Slate.js 的编辑器,可以将编辑器内容转换为降价。为此,我正在使用remark-slate-transformer,它本身使用mdast-util-to-markdown,它倾向于在它连接的每个元素之间插入换行符。事实上,渲染列表往往看起来像这样:

而期望的结果是:

文档并没有特别清楚地说明如何实现这一点。因此,使用指定工具包实现预期结果的最佳方法是什么?我的猜测是使用选项对象/参数的joinorhandlers成员,但我不清楚这将如何实现。

0 投票
2 回答
95 浏览

reactjs - 如何在 Slatejs 中创建 Read_More 和 Read_less 按钮

在此链接中,您可以找到 read_more/read_less 功能,但在 slatejs 中,我们无法直接访问文本。那么,如何以 slatejs 的方式在 saltejs 中创建该功能。我试图创建使用 ref

然后我以这种方式实现

但它隐藏了所有文本。但是,我想我需要像这样moreText.current.lenghth(300).appendSpan(span of ref={moreText})

0 投票
1 回答
658 浏览

reactjs - 在 slatejs 编辑器中反序列化嵌套的 html

如何将嵌套的 html 元素反序列化为与 Slate 兼容的 JSON 结构。请提供任何帮助。我已经尝试过使用文档中的 deserialize() 函数的 slate-hyperscript,但它不起作用。这是我有的示例html

0 投票
0 回答
148 浏览

slatejs - why does slatejs image-upload example crash after uploading an image

I am using the same code as in slate's documentation (https://github.com/ianstormtaylor/slate/blob/master/site/examples/images.tsx), however, when I open the prompt and close it a small div appears below your cursor and when I click it the app crashes and I receive error "Unhandled Rejection (Error): Cannot resolve a DOM point from Slate point: {"path":[3,0],"offset":1}". Here is a live example from their documentation: https://www.slatejs.org/examples/images Notice that when you choose close there is small white space appearing. How do you come around this behavior?

0 投票
1 回答
299 浏览

reactjs - SlateJS:仅在活动块上方显示浮动工具栏

我正在使用@udecode/slate-plugins创建一个SlateJS编辑器。我得到了大部分编辑器的工作,但是,正在尝试为表格块创建一个工具栏,当它被选中/激活时,它应该在表格上方可见。

该工具栏当前在表格上方正确显示,但是当我在选择/活动中的一个表中,当我在编辑器中插入多个表时,在每个表上方都可以看到工具栏。

如何使工具栏仅在活动表上可见而在其余表上隐藏?

演示: Codesandbox.io

表块代码

0 投票
0 回答
36 浏览

reactjs - 将插件配置传递给实现 Slate-Plugins 的组件。获取 TypeError:(解构参数)未定义

我正在构建一个使用 Slate 插件的可配置编辑器组件。这个包使用了一个插件参数,我在定义时遇到了问题。该组件看起来像这样(大大简化):

如果我像这样将插件数组传递给组件:

使用编辑器时没有任何反应。如果我尝试在将插件对象输入 SlatePlugins 实例之前对其进行初始化:

我得到错误:TypeError: (destructured parameter) is undefined。如果我尝试传递初始化的插件,也会发生同样的情况:

有没有办法将插件数组传递到包含组件中,以便 Slate 插件可以使用它们?

0 投票
2 回答
95 浏览

slatejs - Slatejs editor.selection 在弹出框上返回 null?

我创建了一个带有 voids 的 slatejs 富文本编辑器,但我遇到了一个问题,即我在弹出框内执行操作时无法获取当前选择。但是,我在 sandbox 上重新创建了问题。

  • 附加信息
    • 如果你想知道我为什么要editor.selection进入一个弹出窗口?我需要它,因为有时我在弹出框内执行操作,我需要使用更新文档手册Trsnform.setNodes(editor,newData,at:{editor.selection.path})
  • 我的目标是进入editor.selectionSimplePopover.tsx:64沙盒