我做了这个React应用程序,但我一直得到这个错误:
未捕获错误:createRoot(...):目标容器不是DOM元素。
有人能帮帮我吗这是我的index.html和index.js。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<title>React App</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
</body>
</html>
import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
ReactDOM.createRoot(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById("root")
);
reportWebVitals();
我已经尝试了上传到互联网的所有可能的解决方案,但不幸的是,没有一个还没有工作。
3条答案
按热度按时间ebdffaop1#
正如文档中所说,签名是:
它取代了:
所以你需要把你的代码改成
6l7fqoea2#
来自react文档,https://17.reactjs.org/docs/concurrent-mode-reference.html#createroot
代码行与此代码
这应该可以修复错误。
62o28rlo3#
我遇到了同样的错误,这个页面帮助我修复了它:https://www.sharooq.com/solved-createroot-target-container-is-not-a-dom-element
很可能在页面完成DOM设置之前就调用了document.getElementById(“root”)。尝试将您的代码移动到: