ReactDOM应该从哪里导入?

86

升级到版本0.14.2后,我看到一个错误信息和建议使用ReactDOM.render()代替React.render(),但我该如何导入它?

当我不导入它并按原样运行时,它会显示为undefined。它是内置功能还是第三方库?

2个回答

132

新的更新中,所有的DOM操作应该使用ReactDOM完成,而不是React。它是一个独立的模块。

执行npm install react-dom,如果你正在使用ES6,则可以执行以下操作:

import ReactDOM from 'react-dom';

如果你使用的是ES5,你可以这样做:

var ReactDOM = require('react-dom');

然后您可以在代码中使用ReactDOM.render()ReactDOM.findDOMNode()等。


8
应该使用 import * as ReactDOM from 'react-dom' 吗? - cyrilluce
@cyrilluce 这是我使用 "react": "^0.14.3""react-dom": "^0.14.3" 成功的语法。 - seangwright
import ReactDOM from 'react-dom' 应该可以正常工作。但是如果你使用 TypeScript,可能需要执行 import * as ReactDOM from 'react-dom' - Saad
3
为什么在 TypeScript 中我们需要使用 * 作为 ReactDOM?(注:* 是通配符,用于导入模块中所有的内容) - Edward

6

如果您正在使用最新版本的React(v18及以上版本),React和React语句已经更新。 在此之前(直到v17.0.2),它是这样的:

import React from 'react';
import ReactDOM from 'react-dom';

目前(自v18.0.0版本起),它的状态为:

import { React } from "react";
import { createRoot } from "react-dom/client";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接