gpt4 book ai didi

javascript - filterDescendants 和 findDescendant 与 slate.js

转载 作者:行者123 更新时间:2023-11-29 16:42:59 24 4
gpt4 key购买 nike

我正在使用 slate.js 制作一个所见即所得的编辑器我正处于尝试找到第一个带有文本的节点的情况。

下图显示了我在说什么:

Slate.js find first text pic

在我的图片中,我想找到包含“this is my title.”的节点,即使它之前有几行空行也是如此。

基本上,如果我在编辑器中写了一堆文本,我如何找到第一个不是空字符串的文本?

查看文档,我找到了 filterDescendants和 findDescendants 函数,它们似乎可以满足我的需求。

但是,我不清楚如何使用它们。

我试过这样的:

this.state.state.startBlock.findDescendant((d) => d.text !== "")

但这只会返回 null

文档说 findDescendant 将“通过迭代器深入查找后代节点”,其中 iterator 是一个函数,但是没有提供任何类型的函数的示例会经过这里。

有没有人有任何想法或例子?

最佳答案

这里是 Slate.js 作者。

你会喜欢做这样的事情:

state.document.getBlocks().find(block => block.text != '')

这将搜索文档中的叶 block 节点(在本例中为您的段落、标题等)并找到第一个不为空的节点。

Slate 数据模型是用 Immutable.js 构建的,因此阅读该库的工作原理对使用 Slate 非常有帮助。在这种情况下,getBlocks() 返回一个不可变的 List。 ,它有一个 find 方法。

希望对您有所帮助!

关于javascript - filterDescendants 和 findDescendant 与 slate.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43814287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com