Я пытаюсь создать динамический настраиваемый блок, используя RichText, и задаюсь вопросом, как установить его атрибуты. Проверяя примеры в Интернете, некоторые люди устанавливают его атрибуты на «Массив и дочерние элементы», но я также нашел примеры с «HTML и имя класса».
Я пробовал оба паттерна (паттерн A и B ниже), но их результаты во внешнем интерфейсе точно такие же. Хотелось бы узнать разницу между ними и какой способ лучше.
Образец А
attributes: {
message: {
type: 'array',
source: 'children',
selector: '.message',
}
},
Образец B
attributes: {
message: {
type: 'string',
source: 'html',
selector: '.message',
}
},
редактировать и сохранять функции
edit: props => {
const {attributes:{message}, className, setAttributes} = props;
const onChangeMessage = message => {
setAttributes({message});
}
return(
<div className={ className }>
<RichText
tagName = "div"
multiline = "p"
onChange = {onChangeMessage}
value = {message}
/>
</div>
);
},
save: props => {
const {attributes:{message}} = props;
return (
<div>
<div class="message">
<RichText.Content
value = {message}
/>
</div>
</div>
);
},