我想知道如何从光标位置开始将 BOLD 切换为文本。 RichUtils允许我使用ctrl-b
命令来切换粗体,这是我想要的,但是需要一个按钮。如果我当前单击我的按钮(richUtils.toggleInlineStyles()),则仅将粗体应用于突出显示的文本。但我希望从光标位置开始键入时将其显示为粗体。
您将如何实现?
答案 0 :(得分:0)
https://draftjs.org/docs/api-reference-editor-state#setinlinestyleoverride
返回一个新的EditorState对象,该对象具有指定的DraftInlineStyle作为内联样式集,并应用于下一个插入的字符。
答案 1 :(得分:0)
我知道这个问题很老,但我遇到了同样的问题。 使用键盘快捷键和点击按钮的区别在于,使用键盘快捷键时,不会留下输入。
您需要做的是防止按钮从输入中窃取焦点。
您可以通过从 preventDefault
事件调用 mousedown
来实现。
使用 mousedown
而不是 click
很重要。
例如:
<button
type="button"
onMouseDown={(e) => {
e.preventDefault();
updateEditorState(RichUtils.toggleInlineStyle(editorState, 'BOLD'));
}}
>
<strong>B</strong>
</button>
当您单击该按钮时,您的光标仍将位于输入中,并且在您开始输入时将应用新样式。