簡體   English   中英

Slatejs 在換行后重置元素類型

[英]Slatejs reset element type after line-break

我正在使用 slatejs,我想知道:

如果我當前的 Element.type 是title ,看起來像<h1></h1>
但是當我點擊enter時,它會創建一個新的<h1>標簽。

如果我想要title類型后的換行符並且新元素類型將成為默認值,我該怎么辦?

假設您的節點看起來像: {children: [{text: ''}], type: 'title'}或類似的東西。

當您按enter時,它會添加一個空節點,例如 {children: [{text: ''}], type: 'title'}

您應該能夠以這種方式修改insertBreak行為以修改它添加的節點類型:

const { insertBreak } = editor

  editor.insertBreak = () => {
    const { selection } = editor

    if (selection) {
      const [title] = Editor.nodes(editor, {
        match: n =>
          !Editor.isEditor(n) &&
          Element.isElement(n) &&
          (n.type === 'title')
      })

      if(title){
        Transforms.insertNodes(editor, {
          children: [{text: ""}],
          type: 'default'
        })
        return
      }
    }
    insertBreak()
  }

暫無
暫無

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

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