我定义了一个blockRendererFn回调来使用我自己定义的组件渲染一个块。但是如何使用现有内容构建编辑器? ContentBlock的构造函数没有选择接受我的组件
答案 0 :(得分:2)
ContentBlock的构造函数无法接受我的组件
您可以将自定义组件名称传递给type
配置对象的ContentBlock
属性。
例如,我们有一个名为MyCustomBlock
的自定义组件。我们有一个字符串数组,您希望将其包装在自定义组件中并显示为编辑器的现有内容。以这种方式创建ContentBlock
数组:
const input = ['foo', 'bar', 'baz'];
const contentBlocksArray = input.map(word => {
return new ContentBlock({
key: genKey(),
type: 'MyCustomBlock',
characterList: new List(Repeat(CharacterMetadata.create(), word.length)),
text: word
});
});
并使用EditorState.createWithContent
和ContentState.createFromBlockArray
方法获取初始编辑器状态:
this.state = {
editorState: EditorState.createWithContent(ContentState.createFromBlockArray(contentBlocksArray))
};
请看这个工作示例 - http://jsfiddle.net/levsha/vp8utkwv/