如何为类提供多行元素gutenberg RichText块?

时间:2018-10-23 09:01:58

标签: wordpress-gutenberg gutenberg-blocks

我在gutenberg RichText块中使用以下代码

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

有人可以帮我分配带有多行li元素的类list-item吗?

1 个答案:

答案 0 :(得分:1)

我不认为gutenberg开箱即用。您可以通过在保存功能中将<li>替换为<li class="list-item">来修改RTF编辑器的内容。 您需要使用dangerouslySetInnerHTML<ul>

中将字符串呈现为html。
save: function save(props) {
    function createMarkup() {
        return { __html: props.attributes.content.replace(/<li>/g, '<li class="list-item">') };
    }

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

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

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
    });
},