介绍
实体是表示草稿编辑器中的一系列文本的元数据的对象。它有三个属性:
类型:这表明它是什么样的实体的字符串,例如’LINK’, ‘MENTION’,’PHOTO’。
可变性:不要与la不可变性混淆immutable-js,这个属性表示在编辑器中编辑文本范围时,用这个实体对象注解的一系列文本的行为。这在下面更详细地解决。
数据:包含实体元数据的可选对象。例如,一个’LINK’实体可能包含一个data包含该href链接值的对象。
所有实体都存储在ContentState记录中。这些实体由内部的键引用ContentState,React组件用于修饰注释范围。
使用装饰器或 自定义块组件,您可以根据实体元数据向编辑器添加丰富的渲染。
创建和检索实体
应该使用contentState.createEntity接受上述三个属性作为参数的实体来创建实体。此方法返回一个ContentState更新的记录以包含新创建的实体,然后您可以调用contentState.getLastCreatedEntityKey以获取新创建的实体记录的密钥。
此键是将实体应用于内容时应使用的值。例如,该Modifier模块包含一个applyEntity方法:
const contentState = editorState.getCurrentContent();
const contentStateWithEntity = contentState.createEntity(