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

javascript - SlateJS + 还原

我想将 SlateJS 编辑器的值存储在 redux 中而不是状态中,但是当我更改hasLinks方法时,我立即收到一个崩溃说明:

TypeError:无法读取未定义的属性“内联”

编辑hasLinks方法

Redux 商店

初始状态

谁能帮我理解为什么这不起作用以及我可以做些什么来更新以解决它?

0 投票
1 回答
3467 浏览

javascript - Slate JS:将道具设置为编辑器的值

我正在使用 Slate JS 编辑器构建一个 textarea 电子邮件表单。我想显示我自己的值,而不是 slate 默认初始状态值,该值作为来自 redux 的道具传递给组件。

所以代替这个:

我正在这样做:

因此,该道具作为对象传递,首先转换为 json,然后转换为所需的 slate 编辑器格式。这不会破坏组件,但该值不会显示在编辑器中。我做错了什么以及将 slate 编辑器值设置为道具的正确方法是什么?感谢您对此的任何帮助!

0 投票
1 回答
472 浏览

javascript - 当我更改光标位置时,防止 textarea 自动滚动

我有一个包含大量文本和垂直滚动条的文本区域。当我将光标移出可见区域时(想象有一个长文档,然后多次按下向下箭头直到光标离开屏幕),浏览器会自动将光标滚动到视图中,因此它始终保持可见。

如何防止这种行为?我需要能够将光标移动到可见区域之外,而不会自动滚动。

(从技术上讲,它不是 textarea,而是基于 React 的文本编辑器,在 dom 中,它是一个 div,内容可编辑设置为 true,不确定是否重要)

0 投票
0 回答
751 浏览

reactjs - 在 slatejs react 中的编辑器内容末尾添加自定义块

我在 react 中使用 Slate js 创建了一个编辑器。我正在尝试在编辑器内容的末尾插入一个块。我遇到了一种在范围内插入块的方法。如何指定文档的范围,以便在内容末尾添加我的自定义块,但焦点停留在当前选择而不是文档末尾。

我的架构看起来像这样

0 投票
1 回答
228 浏览

slatejs - 切换 SlateJS 编辑器的只读道具

我正在玩SlateJS v0.34.5。有没有办法切换编辑器只读状态?

0 投票
0 回答
96 浏览

reactjs - Get multiple occurrences of an inline block in Slate js having inline block at first place

I have an inline-block node value. With this node value, I would like to get multiple occurrences of it in the editor.

0 投票
1 回答
2930 浏览

javascript - 如何在 slatejs 中获取光标位置或选择?

我正在使用 slate.js 和 React.js 创建一个基本编辑器。

当我单击编辑器外部的卡片时,我想在当前选定位置在编辑器内插入文本,即当我单击包含文本的卡片时,文本上的卡片应插入到 slate.js 编辑器中的最后一个光标位置。

0 投票
0 回答
269 浏览

javascript - 我需要一种在文本中添加多个带有样式的标签的方法,同时跟踪它在 html 文本区域中的位置

解释起来有点棘手,但我需要生成一个 React 组件,用户可以在其中选择文本并将“标签”应用于文本,这将使文本变为粗体。我需要记录标签的位置,因为这些数据需要存储并在其他需要标签位置的系统中使用。

复杂的部分是用户可以编辑文本并应用重叠标签。

在 DraftJS 中使用实体我创建了一个解决方案,它支持除了重叠标签之外的所有内容,因为在 DraftJS 中,多个实体不能覆盖同一段文本。

然后,我尝试使用 contentEditable div 和自定义标签从头开始编写解决方案,但由于 html 生成了格式错误的 html,如下所示

浏览器会尝试修复这意味着我无法跟踪标签。

我尝试使用注释来解决 html 解析问题:

评论不断消失,阻止了这种方法的工作。

我用 SlateJS 尝试了同样的事情,但结果证明是小故障并且评论不断消失。

理想情况下,是否有人知道可以处理我正在寻找的现有组件或编写自定义解决方案的强大方法?

0 投票
1 回答
1874 浏览

reactjs - Enter 和 Backspace 不能在 React 中使用 Slate.js 编辑器

我正在为应用程序实现文本编辑器,并尝试添加一些热键以进行快速编辑,例如粗体斜体。由于某种原因,在我实现我的 onKeyDown 侦听器以呈现我的格式化文本后,我的退格键和输入按钮不再起作用。当onChange键为退格键或回车键时,处理程序不会被触发,但会为每个其他键触发。下面是我的代码。

TextEditor.js

我正在关注本教程https://www.strilliant.com/2018/07/15/let%E2%80%99s-build-a-fast-slick-and-customizable-rich-text-editor-with- slate-js-and-react/

我似乎无法找到我所做的不同之处,并且想知道是否对 slate/react 进行了更改,这会阻止我遵循的代码按预期工作。

0 投票
1 回答
857 浏览

javascript - slate js:如何在悬停时突出显示具有相同标记的相邻组件?

想象一下 2 条重叠的评论,它们有不同的标记,但使用相同的组件呈现CommentHighlight

  • a- 有评论 1 的标记
  • b- 有评论 2 的标记
  • c- 有评论 1 和 2 的标记

当我将鼠标悬停在上方时,aaa我也需要cc更改颜色。但是怎么做?

我唯一的猜测是跟踪 redux(或类似)中的高亮状态,并在状态更改时更新每个评论组件。但这看起来有点矫枉过正。