【问题标题】:draft-js convertToRaw method is not workingDraft-js convertToRaw 方法不起作用
【发布时间】:2017-03-08 21:50:49
【问题描述】:

我使用draft-js-plugins。我在我的编辑器中同时使用了表情符号和提及插件。当我使用时,

convertToRaw(contentState)

要将我的内容数据保存到数据库中,它会显示一条错误消息。

immutable.js:1421 Uncaught TypeError: Cannot read property 'entries' of undefined

但只有当我在内容中使用提及时才会出现此错误。它适用于纯文本和表情符号内容。请帮忙。

【问题讨论】:

    标签: reactjs immutable.js draftjs


    【解决方案1】:

    你在使用draft-js plugins editor吗?它对我来说很好用,虽然一开始我对editorStatecontentState 感到困惑。当我尝试执行convertToRaw(editorState) 时,会弹出这些错误,请确保您正在执行以下操作:

    _onChange (editorState) {
      this.setState({
        editorState,
      });
      const contentState = editorState.getCurrentContent();
      console.log(convertToRaw(contentState));
    }
    

    【讨论】:

    • 请告诉我,您正在使用哪些版本。目前他们已经发布了下一个版本的测试版。我正在使用“draft-js 插件编辑器”、“emoji 插件”和“提及插件”的 beta 版本
    • 我的package.json"draft-js-plugins-editor": "^2.0.0-beta1"
    • 请同时映射其他人,"draft-js-emoji-plugin": "^2.0.0-beta1", "draft-js-mention-plugin": "^2.0.0-beta1" , "draft-js-plugins-editor": "^2.0.0-beta1",
    • 我们已经在 2.0.0-beta6 上。我建议您将它们全部升级到此版本,然后重试。
    • 嗨@NikGraf。目前我已将插件升级到“2.0.0-beta6”版本。但问题仍然存在。我在以下 repo 中创建了一个示例代码。请拜访。 github.com/erangakapukotuwa/draft-js-sample
    【解决方案2】:

    在使用了几次之后,我找到了原因。在这里,我试图将不可变的内容保存到数据库中。并尝试通过 Ajax 调用将该数据传递到后端。

    当我们通过ajax调用发布数据时,我们必须使用JSON.stringifyapplication/json; charset=utf-8,如下所示。

     $.ajax({
            url: '/calendar/event/add',
            method: "POST",
            dataType: "JSON",
            data: JSON.stringify(postData),
            contentType: "application/json; charset=utf-8",
        }).done(function (data, text) {
            if(data.status.code == 200){
                console.log("Success");
            }
        }.bind(this));
    

    【讨论】:

      猜你喜欢
      • 2021-07-06
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 2021-08-04
      • 2022-10-09
      • 2011-09-22
      相关资源
      最近更新 更多