React Draft Wysiwyg 对整个内容应用粗体、斜体或 udenderlina



我需要将粗体、斜体、下划线样式应用于编辑器的整个内容,没有选定的文本,就像对齐样式一样,但我找不到方法。是否可以更改操作或处理程序?

是的,这是可能的。您可以在应用样式的那一刻更新SelectionState。 在这里,我们选择所有文本

const selection = editorState.getSelection().merge({
anchorKey: currentContent.getFirstBlock().getKey(),
anchorOffset: 0,
focusOffset: currentContent.getLastBlock().getText().length,
focusKey: currentContent.getLastBlock().getKey()
});

然后,我们应用新的selection

const editorStateWithAllSelection = EditorState.acceptSelection(
editorState,
selection
);
const newState = RichUtils.toggleInlineStyle(
editorStateWithAllSelection,
inlineStyle
)

如果您想避免在最终结果中选择您的文本,我们可以应用我们的旧选择

const selectionBefore = editorState.getSelection();
// updating selection, toggling style ...
const editorStateWithSelectionBefore = EditorState.acceptSelection(
newState,
selectionBefore
);
setEditorState(editorStateWithSelectionBefore);

代码和框上的示例

相关内容

  • 没有找到相关文章

最新更新