0

我正在使用 react-rte 但愿意扩展它,所以让我们谈谈 Draft-js。

我需要能够“内联样式”选择。然后在随后的渲染中重新访问该选择的 dom。

因此,假设我突出显示了一个选择。然后我坚持这个文件。然后我回来,重新加载文档,我需要能够访问那个突出显示的部分,但是在 dom.xml 中。

基本上在文档的一侧,我在 Draft-js 之外应用标记,并且这些标记需要与突出显示的部分对齐。因此,当我进行初始突出显示时,我可以从 window.getSelection() 获取 dom 位置,并且可以放置我的标记。但是 dom 以后可能会改变,我将无法放置我的标记。

- 编辑 -

所以另一个用例是我突出显示一个选择,即使在同一个会话中,我也需要以编程方式更改选择的颜色,所以即使光标不在该部分上,我也需要再次访问文档的部分。

--结束编辑--

所以我真正需要的是一个独特的类名、id 甚至更好的 react ref,用于在你执行内联样式时创建的新跨度。

如果您需要更好的解释,请告诉我。

4

1 回答 1

0

记录选择,SelectionState包括开始块、开始偏移、结束块和结束偏移。将选择保存在您的代码中并稍后应用于编辑器是没有问题的。

所以我真正需要的是一个独特的类名、id 甚至更好的 react ref,用于在你执行内联样式时创建的新跨度。

所以id你想要的是一个 SelectionState,告诉 span 在 Draft-js 编辑器中的位置。

更新

您可以在节点属性中找到block key您的内联样式文本所属的内容。帮助您从中找到节点data-offset-key={blockkey}-xx-xx。然后通过 找到节点。block keySelectionState.getStartKey()/getEndKey()spanSelectionState.getStartOffset()/getEndOffset()

于 2016-11-22T09:56:37.363 回答