簡體   English   中英

filterDescendants和findDescendant with slate.js

[英]filterDescendants and findDescendant with slate.js

我正在使用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 != '')

這將搜索文檔中的葉塊節點(在本例中為您的段落,標題等),並找到第一個非空的節點。

Slate數據模型是使用Immutable.js構建的,因此閱讀該庫的工作方式對於使用Slate非常有幫助。 在這種情況下, getBlocks()返回一個不可變的List ,它有一個find方法。

希望有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM