【问题标题】:react-draft-wysiwyg - Warning: Can't call setStatereact-draft-wysiwyg - 警告:不能调用 setState
【发布时间】:2020-04-06 15:59:13
【问题描述】:

我确实使用 react-draft-wysiwyg 制作了一个简单的 react 应用程序,但我收到了警告。

import React from "react";
import ReactDOM from "react-dom";
import { Editor } from "react-draft-wysiwyg";
import "../node_modules/react-draft-wysiwyg/dist/react-draft-wysiwyg.css";

ReactDOM.render(
  <React.StrictMode>
    <Editor />
  </React.StrictMode>,
  document.getElementById("root")
);

当我在控制台中单击编辑器时会出现此错误,但仅当我在 StrictMode 中运行它时:

警告:无法在尚未安装的组件上调用 setState。 这是一个无操作,但它可能表明您的应用程序中存在错误。 相反,直接分配给this.state 或定义一个state = {}; r 组件中具有所需状态的类属性。

我确实为你做了一个codeSandbox:https://codesandbox.io/s/strange-monad-lxtuu?file=/src/index.js:0-295 尝试单击编辑器并查看控制台中的警告。 我做错了什么?

【问题讨论】:

标签: reactjs setstate strict-mode draft-js-plugins react-draft-wysiwyg


【解决方案1】:

该软件包的 StrictMode 存在一些问题。 只需删除 StrictMode:

import React from "react";
import ReactDOM from "react-dom";
import { Editor } from "react-draft-wysiwyg";
import "../node_modules/react-draft-wysiwyg/dist/react-draft-wysiwyg.css";

ReactDOM.render(
  <Editor />,
  document.getElementById("root")
);

【讨论】:

  • 没有严格模式不是一个选项。我认为那个包坏了。
  • 我同意@AlexanderJuhl 在更新之前不要使用这个包,我现在正在使用它,所以我可能会去看看。
  • 查看github。该软件包已修复但尚未合并。
猜你喜欢
  • 2019-02-11
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
  • 2022-12-18
  • 2019-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多