Jef*_*xim 2 javascript wysiwyg slate.js
我正在使用slate.js制作一个所见即所得的编辑器,当时我正试图找到第一个带有文本的节点。
下图显示了我在说什么:
在我的图片中,我希望找到包含“这是我的标题。”的节点,即使它前面有几行空行也是如此。
基本上,如果我在编辑器中写了一堆文本,该如何查找不是空字符串的第一个文本?
浏览文档,我发现filterDescendants和findDescendants函数似乎可以满足我的需求。
但是,我不清楚如何使用它们。
我已经尝试过这样的事情:
this.state.state.startBlock.findDescendant((d) => d.text !== "")
但这只是返回 null
文档说这findDescendant将“通过迭代器深度查找后代节点”,其中iterator是一个函数,但没有提供有关在此处传递哪种函数的示例。
有没有人有任何想法或例子?
Slate.js作者在这里。
您将想要执行以下操作:
state.document.getBlocks().find(block => block.text != '')
Run Code Online (Sandbox Code Playgroud)
这将搜索文档中的叶子块节点(在本例中为您的段落,标题等),并找到第一个不为空的节点。
Slate数据模型是使用Immutable.js构建的,因此了解该库的工作方式对于使用Slate很有帮助。在这种情况下,getBlocks()返回一个List具有find方法的不可变。
希望有帮助!
| 归档时间: |
|
| 查看次数: |
610 次 |
| 最近记录: |