У меня есть функция для установки размера шрифта встроенного стиля.Это работает в основном, за исключением того, что после циклического перебора нескольких размеров шрифта мне приходится дважды нажимать кнопку.Поэтому, чтобы попытаться решить эту проблему, я хочу просмотреть текущее состояние содержимого выбранной коллекции, удалить все текущие стили размера шрифта и затем переключить новый стиль.Это то, что я имею до сих пор, за исключением того, что Modifier.removeInlineStyle()
, кажется, не применяется, и я все еще остаюсь с моей первоначальной проблемой.
состояние установлено:
constructor(props: RichTextEditorComponentProps) {
super(props);
this.state = this.propsToState(props);
}
propsToState(props: RichTextEditorComponentProps) {
return {
editorState: props.content ? EditorState.createWithContent(
ContentState.createFromBlockArray(
convertFromHTML(props.content).contentBlocks,
convertFromHTML(props.content).entityMap
)
) : EditorState.createEmpty()
};
}
метод вкласс:
onFontSizeStyleClick(fontStyle: string) {
const contentState = this.state.editorState.getCurrentContent();
const styles = this.state.editorState.getCurrentInlineStyle();
const selection = this.state.editorState.getSelection();
Object.keys(FontStyleMap).forEach(style => {
if (styles.has(style)) {
Modifier.removeInlineStyle(contentState, selection, style);
}
});
this.onChange(RichUtils.toggleInlineStyle(this.state.editorState, fontStyle));
}
и затем вызывается из:
<button
type="button"
className="style-button"
onClick={() => this.onFontSizeStyleClick('fontSizeXS')}>
SM
</button>
<button
type="button"
className="style-button"
onClick={() => this.onFontSizeStyleClick('fontSizeNormal')}>
N
</button>
<button
type="button"
className="style-button"
onClick={() => this.onFontSizeStyleClick('fontSizeL')}>
L
</button>
<button
type="button"
className="style-button"
onClick={() => this.onFontSizeStyleClick('fontSizeXL')}>
XL
</button>