React-draft-wysiwyg - 警告:无法调用 setState

Ale*_*uhl 5 setstate strict-mode reactjs draft-js-plugins react-draft-wysiwyg

我确实使用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")
);
Run Code Online (Sandbox Code Playgroud)

当我单击编辑器时,我会在控制台中收到此错误,但仅当我在严格模式下运行它时:

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

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

小智 2

该软件包在 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")
);
Run Code Online (Sandbox Code Playgroud)

  • 没有严格模式不是一个选项。我想那时包裹就坏了。 (2认同)