使用 draft.js 是否可以使用类名创建自定义块跨度
with draft.js is it possible to create a custom block span with classname
我正在使用 draft.js,除了一件事,我拥有工作所需的一切。
我希望能够添加一个自定义块选项,该选项将在编辑器中的选定内容周围应用具有自定义 class(例如内容)的跨度。
对于 draft-js 自定义块这可能吗?
有什么好的例子吗? (谷歌搜索时没有找到任何东西)
您可以在不使用自定义 class 将文本换行到元素的情况下执行此操作。您可以使用方法 RichUtils.toggleInlineStyle
设置所选文本的样式。更多详细信息描述 here。
看看这个工作示例 - https://jsfiddle.net/x2gsp6ju/2/
定义customStyleMap
对象。此对象的键应该是您的自定义样式和值的唯一名称 - 具有适当样式的对象。
const customStyleMap = {
redBackground: {
backgroundColor: 'red'
},
underlined: {
textDecoration: 'underline',
fontSize: 26
},
};
将此对象传递给 Editor
组件的 customStyleMap
属性:
<Editor
placeholder="Type away :)"
editorState={this.state.editorState}
onChange={this._handleChange}
customStyleMap={customStyleMap}
/>
在此示例中,我在单击相应按钮后为所选文本应用样式,我调用 this.applyCustomSTyles
方法并将样式名称作为第一个参数传递。在这种方法中,我用 RichUtils.toggleInlineStyles
:
生成新的 editorState
applyCustomStyles = (nameOfCustomStyle) => {
this._handleChange(
RichUtils.toggleInlineStyle(
this.state.editorState,
nameOfCustomStyle
)
);
}
我正在使用 draft.js,除了一件事,我拥有工作所需的一切。
我希望能够添加一个自定义块选项,该选项将在编辑器中的选定内容周围应用具有自定义 class(例如内容)的跨度。
对于 draft-js 自定义块这可能吗?
有什么好的例子吗? (谷歌搜索时没有找到任何东西)
您可以在不使用自定义 class 将文本换行到元素的情况下执行此操作。您可以使用方法 RichUtils.toggleInlineStyle
设置所选文本的样式。更多详细信息描述 here。
看看这个工作示例 - https://jsfiddle.net/x2gsp6ju/2/
定义customStyleMap
对象。此对象的键应该是您的自定义样式和值的唯一名称 - 具有适当样式的对象。
const customStyleMap = {
redBackground: {
backgroundColor: 'red'
},
underlined: {
textDecoration: 'underline',
fontSize: 26
},
};
将此对象传递给 Editor
组件的 customStyleMap
属性:
<Editor
placeholder="Type away :)"
editorState={this.state.editorState}
onChange={this._handleChange}
customStyleMap={customStyleMap}
/>
在此示例中,我在单击相应按钮后为所选文本应用样式,我调用 this.applyCustomSTyles
方法并将样式名称作为第一个参数传递。在这种方法中,我用 RichUtils.toggleInlineStyles
:
editorState
applyCustomStyles = (nameOfCustomStyle) => {
this._handleChange(
RichUtils.toggleInlineStyle(
this.state.editorState,
nameOfCustomStyle
)
);
}