2

我正在学习 Draft.js 编辑器,但找不到如何配置默认字体系列和字体大小。

我试过这样:

let editorState = EditorState.createEmpty();

let newState = RichUtils.toggleBlockType(
    editorState,
    'aligncenter'
);

newState = RichUtils.toggleInlineStyle(
    newState,
    'FONT_SIZE_36'
);
newState = RichUtils.toggleInlineStyle(
    newState,
    'TIMES_NEW_ROMAN'
);

奇怪的是,aligncenter样式可以正常工作,但是当组件获得焦点时字体大小系列会消失。

你能建议正确的方法吗?

4

1 回答 1

10

用于修改当前选定的文本范围(或设置将RichUtils.toggleInlineStyle()在当前光标位置输入的文本的内联样式)。没有办法使用它来为整个文档设置默认的内联样式(也不推荐这样做)。

要获得默认样式,您应该使用 CSS 并为整个编辑器设置所需的样式。toggleInlineStyle然后,您应该在用户想要非默认样式(例如从下拉列表中选择字体大小)时覆盖特定文本范围的这些样式。

这就是问题所在。目前,您可以使用预定义这些内联样式,styleMap但当用户选择任意字体系列(或大小或颜色)时,您不能真正即时创建它们。

在尝试为react-rte.org实现颜色选择器时,我也一直在努力解决这个问题。

(从技术上讲,您可以即时添加样式,但它不会触发重新渲染,所以这并不是真正可用的。)

这里有一个未解决的问题: https ://github.com/facebook/draft-js/issues/52

我希望这将在一周左右的时间内得到解决,我可以使用示例代码编辑此答案以完成您所追求的。

于 2016-03-28T10:55:18.023 回答