警告:无法在已卸载的组件上执行React状态更新。这是空操作,但表示您的应用程序中发生内存泄漏

时间:2020-08-25 23:43:48

标签: javascript reactjs

这在注销并重新登录MERN应用程序时给我带来麻烦。我已经阅读了一些有关componentWillUnmount并使用State等内容的内容,但它们都很令人困惑。这就是问题所在。

警告:无法在已卸载的组件上执行React状态更新。这是空操作,但它表明应用程序中发生内存泄漏。要解决此问题,请在componentWillUnmount方法中取消所有订阅和异步任务。 在仪表板中(由ConnectFunction创建) 在ConnectFunction中(在PrivateRoute.js:11处)

import React from "react";
import { Route, Redirect } from "react-router-dom";
import { connect } from "react-redux";
import PropTypes from "prop-types";

const PrivateRoute = ({ component: Component, auth, ...rest }) => (
  <Route
    {...rest}
    render={props =>
    auth.isAuthenticated === true ? (
      <Component {...props} /> // THIS IS THE LINE THROWING THE ERROR (at PrivateRoute.js:11)
    ) : (
      <Redirect to="/login" />
    )
    }
  />
);

PrivateRoute.propTypes = {
  auth: PropTypes.object.isRequired
};

const mapStateToProps = state => ({
  auth: state.auth
});


export default connect(mapStateToProps)(PrivateRoute);


该错误还会随着以下内容而扩大:

XMLHttpRequest.send (async)     
push../node_modules/engine.io-client/lib/transports/polling-xhr.js.Request.create   @   polling-xhr.js:268
Request @   polling-xhr.js:170
push../node_modules/engine.io-client/lib/transports/polling-xhr.js.XHR.request  @   polling-xhr.js:96
push../node_modules/engine.io-client/lib/transports/polling-xhr.js.XHR.doPoll   @   polling-xhr.js:126
push../node_modules/engine.io-client/lib/transports/polling.js.Polling.poll @   polling.js:118
push../node_modules/engine.io-client/lib/transports/polling.js.Polling.onData   @   polling.js:157

我不能正确关闭XHR请求吗?

编辑 看来我发现请求未完成: 要求网址:ws:// localhost:3000 / sockjs-node 请求方法:GET 状态码:101个交换协议

请求调用堆栈

  • ./ node_modules / react-dev-utils / webpackHotDevClient.js @ webpackHotDevClient.js
  • webpack_require @ bootstrap:784
  • fn @ bootstrap:150
  • 1 @ setAuthToken.js:14
  • webpack_require @ bootstrap:784
  • checkDeferredModules @ bootstrap:45
  • webpackJsonpCallback @ bootstrap:32
  • (匿名)@ main.chunk.js:1

只是将其扔在那里,浏览器是否在寻找要连接到的“ React Developer Tools”?

0 个答案:

没有答案