直接渲染组件警告

时间:2018-04-17 11:28:33

标签: reactjs react-dom

我现在已经有一段时间收到以下警告了,而且我很不确定实际上是什么问题:

  

警告:render():直接将组件渲染到document.body中   气馁,因为它的孩子经常被第三方操纵   脚本和浏览器扩展。这可能会导致微妙的和解   的问题。尝试渲染为为您的应用创建的容器元素。

有些人建议使用ReactDOM.render(),这正是我首先要做的,我使用facebook的创建反应应用程序来开启我的应用。

任何线索?

编辑:我的index.js

ReactDOM.render(<App />, document.getElementById("root"));

2 个答案:

答案 0 :(得分:6)

如果您的index.html html正文标记中包含root个ID,则会出现此问题。

index.html更改:

<body id="root"></body>

为:

<body>
   <div id="root"></div>
</body>

答案 1 :(得分:0)

以下是两种可能的解决方案:

  1. 修改HTML并添加<div>并将其用于呈现(推荐)

ReactDOM.render(<App />, document.getElementById('react-app'));
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>React app</title>
</head>
<body>
    <div id="react-app"></div>
</body>
</html>

  1. 使用JavaScript创建一个元素并将其附加到正文中,然后使用该元素进行呈现:

var reactapp = document.createElement("div");
document.body.appendChild(reactapp);
ReactDOM.render(<App />, reactapp);