id: api-reference-character-metadata

title: CharacterMetadata 字符元数据

CharacterMetadata是一个Immutable Record,代表单个字符的内联样式和实体信息。

CharacterMetadata对象被主动合并和共享。 如果两个字符具有相同的内联样式和实体,则它们将使用相同的CharacterMetadata对象表示。 因此,我们仅需要与利用内联样式集和实体键的组合一样多的对象,即使内容的大小和复杂性增加,也可以使我们的内存占用空间较小。

为此,您应该通过提供的一组静态方法创建或将更改应用于CharacterMetadata对象,这将确保利用pooling。

大多数Draft用例不太可能使用这些静态方法,因为大多数常用的编辑操作已经实现,并且可以通过实用程序模块使用。 但是,getter方法可能会在渲染时派上用场

有关如何在ContentBlock中使用CharacterMetadata的信息,请参阅ContentBlock上的API参考。

总览

静态方法

方法

静态方法

在幕后,这些方法将利用pooling来返回匹配的对象,或者如果不存在则返回新的对象。

create()

  1. static create(config?: CharacterMetadataConfig): CharacterMetadata

根据提供的配置生成CharacterMetadata对象。 应该使用该函数代替构造函数。

该配置将用于检查此配置的pooled匹配项是否已经存在。 如果是这样,则将返回合并的对象。 否则,将为此配置合并一个新的CharacterMetadata并返回

applyStyle()

  1. static applyStyle(
  2. record: CharacterMetadata,
  3. style: string
  4. ): CharacterMetadata

将内联样式应用于此CharacterMetadata

removeStyle()

  1. static removeStyle(
  2. record: CharacterMetadata,
  3. style: string
  4. ): CharacterMetadata

从此CharacterMetadata中删除一个内联样式。

applyEntity()

  1. static applyEntity(
  2. record: CharacterMetadata,
  3. entityKey: ?string
  4. ): CharacterMetadata

在此CharacterMetadata上应用entity key-或提供null以删除entity key

方法

getStyle()

  1. getStyle(): DraftInlineStyle

返回此字符的DraftInlineStyle,这是一个OrderedSet字符串,表示要在渲染时应用于该字符的嵌入式样式。

hasStyle()

  1. hasStyle(style: string): boolean

返回此字符是否具有指定的样式。

getEntity()

  1. getEntity(): ?string

返回此字符的entity key(实体键)(如果有的话),映射到Entity模块跟踪的实体的全局集合。

通过在此处跟踪字符串键,我们可以将相应的元数据与字符表示形式分开

如果为null,则没有实体适用于此字符。