跳至主要内容

Class: TabNode

lexical.TabNode

階層結構

構造函式

constructor

new TabNode(key?): TabNode

參數

名稱類型
key?string

返回

TabNode

覆寫

TextNode.constructor

定義於

packages/lexical/src/nodes/LexicalTabNode.ts:41

函式

afterCloneFrom

afterCloneFrom(prevNode): void

prevNode 的克隆上執行任何狀態更新,這些更新在靜態克隆函式中的構造函式調用時尚未處理。如果你的克隆中有狀態需要更新,而這些狀態沒有被構造函式直接處理,建議覆寫此函式,但實現中必須包含對 super.afterCloneFrom(prevNode) 的調用。這僅用於由 $cloneWithProperties 函式或通過 super 調用。

參數

名稱類型
prevNodethis

返回

void

示例

class ClassesTextNode extends TextNode {
// 未顯示:static getType, static importJSON, exportJSON, createDOM, updateDOM
__classes = new Set<string>();
static clone(node: ClassesTextNode): ClassesTextNode {
// 這裡使用繼承的 TextNode 構造函式,所以
// classes 不由此函式設置。
return new ClassesTextNode(node.__text, node.__key);
}
afterCloneFrom(node: this): void {
// 這會調用 TextNode.afterCloneFrom 和 LexicalNode.afterCloneFrom
// 以進行必要的狀態更新
super.afterCloneFrom(node);
this.__addClasses(node.__classes);
}
// 此函式是私有實現細節,不適用於公共 API 因為它不調用 getWritable
__addClasses(classNames: Iterable<string>): this {
for (const className of classNames) {
this.__classes.add(className);
}
return this;
}
addClass(...classNames: string[]): this {
return this.getWritable().__addClasses(classNames);
}
removeClass(...classNames: string[]): this {
const node = this.getWritable();
for (const className of classNames) {
this.__classes.delete(className);
}
return this;
}
getClasses(): Set<string> {
return this.getLatest().__classes;
}
}

覆寫

TextNode.afterCloneFrom

定義於

packages/lexical/src/nodes/LexicalTabNode.ts:35


canInsertTextAfter

canInsertTextAfter(): boolean

此函式應由 TextNode 子類覆寫,以控制當用戶事件會導致文本在編輯器中插入在其之後的節點時的行為。如果返回 true,Lexical 將嘗試將文本插入到此節點中。如果返回 false,則會在新兄弟節點中插入文本。

返回

boolean

如果可以在節點後插入文本,則返回 true,否則返回 false

覆寫

TextNode.canInsertTextAfter

定義於

packages/lexical/src/nodes/LexicalTabNode.ts:81


canInsertTextBefore

canInsertTextBefore(): boolean

此函式應由 TextNode 子類覆寫,以控制當用戶事件會導致文本在編輯器中插入在其之前的節點時的行為。如果返回 true,Lexical 將嘗試將文本插入到此節點中。如果返回 false,則會在新兄弟節點中插入文本。

返回

boolean

如果可以在節點之前插入文本,則返回 true,否則返回 false

覆寫

TextNode.canInsertTextBefore

定義於

packages/lexical/src/nodes/LexicalTabNode.ts:77


exportJSON

exportJSON(): SerializedTextNode

控制此節點如何序列化為 JSON。這對於在共享相同命名空間的 Lexical 編輯器之間複製和粘貼非常重要。如果你將 JSON 用於持久存儲,也很重要。參見 Serialization & Deserialization

返回

SerializedTextNode

覆寫

TextNode.exportJSON

定義於

packages/lexical/src/nodes/LexicalTabNode.ts:57


setDetail

setDetail(_detail): this

將節點的詳細信息設置為提供的 TextDetailType 或 32 位整數。請注意,TextDetailType 版本的參數只能指定一個詳細值,這樣會移除可能應用於節點的所有其他詳細值。對於切換行為,考慮使用 TextNode.toggleDirectionlessTextNode.toggleUnmergeable

參數

名稱類型描述
_detailnumber | TextDetailType代表節點詳細信息的 TextDetailType 或 32 位整數。

返回

this

TextNode。 // TODO 0.12 這應該只是 string

覆寫

TextNode.setDetail

定義於

packages/lexical/src/nodes/LexicalTabNode.ts:69


setMode

setMode(_type): this

設置節點的模式。

參數

名稱類型
_typeTextModeType

返回

this

TextNode

覆寫

TextNode.setMode

定義於

packages/lexical/src/nodes/LexicalTabNode.ts:73


setTextContent

setTextContent(_text): this

設置節點的文本內容。

參數

名稱類型描述
_textstring設置為節點文本值的字符串。

返回

this

TextNode

覆寫

TextNode.setTextContent

定義於

packages/lexical/src/nodes/LexicalTabNode.ts:65


clone

clone(node): TabNode

克隆此節點,創建一個具有不同鍵的新節點並將其添加到 EditorState 中(但不附加到任何地方!)。所有節點必須實現此函式。

參數

名稱類型
nodeTabNode

返回

TabNode

覆寫

TextNode.clone

定義於

packages/lexical/src/nodes/LexicalTabNode.ts:31


getType

getType(): string

返回此節點的字符串類型。每個節點必須實現此函式,並且在編輯器中註冊的節點之間必須唯一。

返回

string

覆寫

TextNode.getType

定義於

packages/lexical/src/nodes/LexicalTabNode.ts:27


importDOM

importDOM(): null | DOMConversionMap

返回

null | DOMConversionMap

覆寫

TextNode.importDOM

定義於

packages/lexical/src/nodes/LexicalTabNode.ts:46


importJSON

importJSON(serializedTabNode): TabNode

控制如何從 JSON 反序列化此節點。這通常是樣板代碼,但提供了節點實現和序列化介面之間的抽象,這在你對節點模式進行重大更改(通過添加或移除屬性)時可能很重要。參見 Serialization & Deserialization

參數

名稱類型
serializedTabNodeSerializedTextNode

返回

TabNode

覆寫

TextNode.importJSON

定義於

packages/lexical/src/nodes/LexicalTabNode.ts:50