id: api-reference-data-conversion

title: 数据转换

因为文本编辑器不存在,而且保存内容以供storage或transmission(存储或传输)很重要,所以您将希望能够将ContentState转换为raw JS,反之亦然

为此,我们提供了一些实用程序功能,可让您执行这些转换。

请注意,Draft库当前不提供实用工具来使markdown 或 markup之间进行转换,因为不同的客户端可能对这些格式有不同的要求。 相反,我们提供了可以根据需要转换为其他格式的JavaScript对象。

Flow类型RawDraftContentState表示内容的raw格式的预期结构。 raw state包含内容块的列表以及所有相关实体对象的映射

函数

convertFromRaw()

  1. convertFromRaw(rawState: RawDraftContentState): ContentState

给定raw state,将其转换为ContentState。 还原要在Draft编辑器中使用的内容时,这很有用。

convertToRaw()

  1. convertToRaw(contentState: ContentState): RawDraftContentState

给定一个ContentState对象,将其转换为raw JS结构。 当保存编辑器状态以进行存储,转换为其他格式或在应用程序中进行其他使用时,此功能非常有用

convertFromHTML()

  1. const sampleMarkup =
  2. '<b>Bold text</b>, <i>Italic text</i><br/ ><br />' +
  3. '<a href="http://www.facebook.com">Example link</a>';
  4. const blocksFromHTML = convertFromHTML(sampleMarkup);
  5. const state = ContentState.createFromBlockArray(
  6. blocksFromHTML.contentBlocks,
  7. blocksFromHTML.entityMap,
  8. );
  9. this.state = {
  10. editorState: EditorState.createWithContent(state),
  11. };

给定一个HTML片段,用两个键将其转换为对象; 一个保存ContentBlock对象的数组,另一个保存对EntityMap的引用。 从块元素数组和EntityMap构造content state(内容状态),然后使用其更新编辑器状态。 完整的示例在这里