2017-05-05 1 views
2

私はslate.jsを使ってwysiwygエディタを作っています 私はテキストで最初のノードを見つけようとしています。 「これが私のタイトルです。」filterDescendantsとfindDescendant with slate.js

私の絵で

Slate.js find first text pic

は、私が含まれているノードを見つけたいと思い、いくつかあります場合でも:

以下この写真は私が話しているかを示してその前の空行。

基本的に、エディタにテキストがたくさんある場合、空の文字列ではない最初のテキストを見つけるにはどうすればよいですか?

ドキュメントを調べると、私が探しているもののように見えるfilterDescendantsとfindDescendants関数が見つかりました。

しかし、私はそれらの使用方法が不明です。

私はこのような何かを試してみた:

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

をしかし、これは単なるiteratorがあるドキュメントはfindDescendantは「深くイテレータによって子孫ノードを見つけること」だろうと言うnull

を返します関数を呼び出すことができますが、ここで渡す関数の種類については例がありません。

誰にでもアイデアや例がありますか?

答えて

4

Slate.js著者はこちら。

あなたのような何かしたいと思うのが好きでしょう:(このケースでは、あなたの段落、ヘッダなど)。これは、文書内のリーフブロックのノードを検索します

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

をし、最初のものを見つけること空ではありません。

スレートデータモデルはImmutable.jsで構築されているので、そのライブラリの仕組みを読むことはスレートの使用に非常に役立ちます。この場合、getBlocks()は、変更可能なListfindメソッドを持つ)を返します。

希望に役立ちます!