Как обеспечить класс многострочным элементом gutenberg RichText блоком?
Я использую следующий код для блока Richtene Гутенберга
el(
RichText,
{
key: 'editable',
tagName: 'ul',
multiline: 'li',
className: 'list-group',
onChange: onChangeContent,
value: content,
}
)
Может кто-нибудь помочь мне, как назначить класс list-item
с многострочным элементом li?
0 ответов
Я не думаю, что Гутенберг поддерживает это из коробки. Вы можете изменить содержимое редактора форматированного текста, заменив <li>
с <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>
элементы в событии onChange компонента RichText.
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
});
},