我正在使用slate.js编写一个wysiwyg编辑器,在这种情况下,我试图找到包含文本的第一个节点。
下面的图片显示了我所说的:
在我的图片中,我希望找到包含“这是我的标题”的节点,即使它前面有几行空行。
基本上,如果我在编辑器中写了一堆文本,如何找到第一个不是空字符串的文本?
纵观这些文档,我发现了filterDescendants和findDescendants函数,它们似乎可以完成我想要的功能。
然而,我不清楚如何使用它们。
我试过这样的方法:
this.state.state.startBlock.findDescendant((d) => d.text !== "")
但这只会返回null
文档说,findDescendant将“通过迭代器深入查找后代节点”,其中iterator是一个函数,但没有提供示例说明您在这里传递什么样的函数。
有人有什么想法或例子吗?
发布于 2017-05-05 23:38:17
这里是Slate.js作者。
你会喜欢做这样的事情:
state.document.getBlocks().find(block => block.text != '')这将搜索文档中的叶块节点(在本例中是段落、标题等)。找到第一个不是空的。
板岩数据模型是用Immutable.js构建的,因此阅读这个库的工作原理对于使用Slate非常有帮助。在本例中,getBlocks()返回一个不可变的List,其中有一个find方法。
希望这能帮上忙!
https://stackoverflow.com/questions/43814287
复制相似问题