我正在嘗試在 React 中使用 JSX,但 ReactDOM.createRoot().render() 不會渲染任何東西:
import React from 'react'
import ReactDOM from 'react-dom'
ReactDOM.createRoot(root).render(<h1>Hello world</h1>)
但是當我使用 ReactDOM.render 時,它可以作業:
import React from 'react'
import ReactDOM from 'react-dom'
ReactDOM.render(<h1>Hello world</h1>, root)
這并不是我有問題,但我更感興趣的是為什么會這樣。
注意:我使用的是 React v17.0.2 并root參考<div id="root"></div>.
uj5u.com熱心網友回復:
ReactDOM.createRoot直到 v18 才添加。如果您查看 devtools 控制臺,您應該會看到以下錯誤:
TypeError:ReactDOM.createRoot 不是函式
這是一個顯示錯誤的 v17 示例:
顯示代碼片段
const root = document.getElementById("root");
ReactDOM.createRoot(root).render(<h1>Hello world</h1>);
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.2/umd/react.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.development.js"></script>
還有一個 v18 示例,它使用createRoot:
顯示代碼片段
const root = document.getElementById("root");
ReactDOM.createRoot(root).render(<h1>Hello world</h1>);
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.1.0/umd/react.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.1.0/umd/react-dom.development.js"></script>
對于 v17,使用ReactDOM.render. (或升級到 v18 并使用createRoot.)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/476204.html
標籤:javascript 反应
