ReactDom.render 在更新热模块时抛出非法调用

尝试集成 HMR 时,出现错误。我已按照文档进行了所有操作,但仍然无法解决问题。

Uncaught TypeError: Illegal invocation
    at HTMLUnknownElement.callCallback (react-dom.development.js:3945)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:3994)
    at invokeGuardedCallback (react-dom.development.js:4056)
    at flushPassiveEffectsImpl (react-dom.development.js:23543)
    at unstable_runWithPriority (scheduler.development.js:646)
    at runWithPriority$1 (react-dom.development.js:11276)
    at flushPassiveEffects (react-dom.development.js:23447)
    at react-dom.development.js:23324
    at workLoop (scheduler.development.js:590)
    at flushWork (scheduler.development.js:545)
    at MessagePort.performWorkUntilDeadline (scheduler.development.js:157)

index.js 文件

import React from "react";
import ReactDOM from "react-dom";
import { BrowserRouter } from "react-router-dom";
import reportWebVitals from "@src/analytics/reportWebVitals";
import PolyFills from "@utils/polyfills";
import sendToGoogleAnalytics from "@src/analytics/tracker/webVitalAnalytics";
import * as serviceWorker from "./serviceWorker";
import App from "./App";

let initialImports = Promise.all(PolyFills());
// using mimic in development mode
if (process.env.NODE_ENV === "developments") {
  initialImports = import("mimic");
}

const renderApp = (AppComponent) => () => {
  ReactDOM.render(
    <React.StrictMode>
      <BrowserRouter basename={process.env.PUBLIC_URL}>
        <AppComponent />
      </BrowserRouter>
    </React.StrictMode>,document.getElementById("root")
  );
};

initialImports.then(renderApp(App));

// Enable Hot Module Replacement (HMR)
if (module.hot) {
  module.hot.accept("./App",() => {
    import("./App").then((mod) => {
      const AppComponent = mod.default;
      renderApp(AppComponent)();
    });
  });
}
jack2010allen 回答:ReactDom.render 在更新热模块时抛出非法调用

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/778571.html

大家都在问