我需要一个无序的列表,但要为每个列表项选择选项。为了实现这一点,我创建了一个名为icon list的自定义块,它是ul
元素,它只允许将我的自定义图标列表项块作为子项。我的图标列表项块只是一个RichText元素,具有tagName: li
和一些控件。这一切都很好,但当前按enter键会在当前图标列表项块中添加一个换行符-我真正想要的是按enter键插入一个新的图标列表项块。类似地,在图标列表项块开始时按backspace键应删除该块-与核心/列表块的功能完全相同。
我对Gutenberg文档和源代码进行了深入研究,发现我需要为我的RichText元素实现onSplit和onReplace属性,但我不清楚我到底是如何做到这一点的。到目前为止,我已经:
el(RichText, {
tagName : \'li\',
className : \'icon--\' + props.attributes.icon,
value : props.attributes.content,
placeholder : props.attributes.placeholder,
onChange : function(value) {
props.setAttributes({ content: value })
},
onSplit : function(value) {
if (!value) {
return createBlock(\'tutti/icon-list-item\');
}
return createBlock(\'tutti/icon-list-item\', {
...props.attributes,
content: value,
}
},
onReplace : function() {
// something
}
})
。。。很明显,当谈到onReplace函数时,我完全不知所措。任何指点都将不胜感激!