4

我正在为古腾堡 RichText 块使用以下代码

el(
    RichText,
    {
        key: 'editable',
        tagName: 'ul',
        multiline: 'li',
        className: 'list-group',
        onChange: onChangeContent,
        value: content,
    }
)

谁能帮助我如何分配list-item具有多行 li 元素的类?

4

1 回答 1

1

我不认为古腾堡开箱即用地支持这一点。您可以通过替换保存功能中的<li>with来修改富文本编辑器的内容。<li class="list-item">您需要使用dangerouslySetInnerHTML将字符串呈现为 html 里面<ul>

save: function save(props) {
    function createMarkup() {
        return { __html: props.attributes.content.replace(/<li>/g, '<li class="list-item">') };
    }

    return el('ul', { dangerouslySetInnerHTML: createMarkup() });
}

更新 如果您在编辑器本身中添加新内容时需要立即执行此操作<li>,则需要调用一个函数将类添加到<li>RichText 组件的 onChange 事件中的元素。

edit: function edit(props) {
    function setCustomClass() {
        $('.list-group li').addClass('list-item');
    }
    return el(RichText, {
        key: 'editable',
        tagName: 'ul',
        multiline: 'li',
        className: 'list-group',
        onChange: function onChangeContent(content) {
            props.setAttributes({ content: content });
            setCustomClass();
        },
        value: props.attributes.content
    });
},
于 2019-01-09T18:38:27.267 回答