【问题标题】:ReactDOM.createRoot can't mount the component into DOMReactDOM.createRoot 无法将组件挂载到 DOM 中
【发布时间】:2020-06-30 07:16:21
【问题描述】:

我正在调试 react 源代码,一切都很好,直到我采用并发模式。当我像这样使用 ReactDOM.createRoot 时:

import React from 'react';
import * as ReactDOM from 'react-dom';
import './index.css';
import App from './App';

/*ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);*/

ReactDOM.createRoot(
  document.getElementById('root')
).render(<App />);

console.log('React Version:' + React.version);

App 组件无法挂载到 DOM 中,控制台没有错误和警告,但 ReactDOM.render 很好。

enter image description here

仓库是https://github.com/neroneroffy/react-source-code-v16.13.0

您可以通过npm install && npm start 克隆和运行

任何帮助将不胜感激

【问题讨论】:

  • 你有什么错误吗?
  • 没有错误和警告

标签: reactjs react-fiber


【解决方案1】:

您正在从不受支持的“react-dom”导入 createRoot。从“react-dom/client”导入。

import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App";

// Create a root.
const root = ReactDOM.createRoot(document.getElementById("root"));

// Initial render
root.render(<App />);

【讨论】:

    猜你喜欢
    • 2017-09-26
    • 2019-05-31
    • 2019-07-18
    • 2018-02-08
    • 2018-11-18
    • 2019-03-17
    • 2020-02-15
    • 2018-01-21
    • 2017-03-31
    相关资源
    最近更新 更多