DraftJS –如何使用自定义实体初始化编辑器?

时间:2019-05-20 13:56:04

标签: reactjs draftjs

与其说是实际代码,不如说是战略问题,但是,如果您认为自己知道如何解决我的任务,请分享任何您想要的东西,因为我被困住了,我需要一切。

所以,我真的与所有这些实体,装饰器,convertFromRaw混淆了……似乎到处都有catch 22,而且我不知道从哪里开始解决这个问题。

因此,我有一个链接到音频的文本,其中某些单词具有时间码和onClick功能,这些功能使音频播放器可以从某些位置播放音频。

我的初始文本是一个数组:

words = [{
    word: 'some word', 
    ... other attributes of certain word,
    }],

我的目标是以这种方式初始化DraftJS编辑器,以使我不会丢失有关单词和音频之间的互连的信息。

我的策略是:

  1. 创建装饰器WordsToAudio,在其中定义将用于替换单词的React Component。
  2. 创建行为类似于LINK的实体,但实际上不是链接,并且以某种方式将props传递给该实体(不知道如何实现)
  3. 以某种方式从我的word数组创建ContentState。

这种策略看起来合理吗?

我在哪里将道具传递给实体?当我这样做时:

    const contentStateWithEntity = contentState.createEntity(
      'UNCERTAIN',
      'MUTABLE',
      {playtime: timecode}
    );

如何将时间码传递给某些单词?或如何使用道具初始化实体?

最后,如何将自定义onClick函数应用于实体?

0 个答案:

没有答案