[英]filterDescendants and findDescendant with 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.