在slate.js中继承新段落的样式



如何防止下一个文本块继承与第一个相同的样式?如果我添加一个标题,然后按回车键,我希望它是下一行的一个段落,而不是另一个标题。

您可以使用onKeyDown来检测何时按Enter,使用Transforms或Editor API来插入具有所需样式的新节点。参考:https://docs.slatejs.org/api/transforms transforms.insertnodes-editor-editor-nodes-node-or-node-options

https://docs.slatejs.org/api/nodes/editor editor.insertnode-editor-editor-node-node-greater-than-void

你可以为编辑器定制一个这样的插件

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: 'paragraph'
})
return
}
}
insertBreak()
}

最新更新