我正在使用 slatejs,我想知道:
如果我当前的 Element.type 是title
, 看起来像<h1></h1>
,
但是当我单击 时enter
,它将创建一个新<h1>
标签。
如果我想在类型之后换行title
并且新元素类型将成为默认类型,我该怎么办?
我正在使用 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()
}