Hice esta aplicación React pero sigo recibiendo este error:
Error no detectado: createRoot (...): el contenedor de destino no es un elemento DOM.
¿Puede alguien ayudarme por favor? Este es mi index.html e 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();Ya probé todas las soluciones posibles que se cargan en Internet, pero desafortunadamente ninguna de ellas ha funcionado todavía.
Como dicen los documentos , la firma es:
ReactDOM.createRoot(rootNode).render(<App />);Y reemplaza:
ReactDOM.render(<App />, rootNode)Entonces necesitas cambiar tu código a
ReactDOM.createRoot( document.getElementById("root"), ) .render( <React.StrictMode> <App /> </React.StrictMode>, );de la documentación de reacción, https://17.reactjs.org/docs/concurrent-mode-reference.html#createroot
Replace this line of your code ReactDOM.createRoot( <React.StrictMode> <App /> </React.StrictMode>, document.getElementById("root") );línea de su código con este código
ReactDOM.createRoot(document.getElementById('root')).render( <React.StrictMode> <App /> </React.StrictMode> );Esto debería corregir el error.