React初学: Uncaught Error: createRoot(...): Target container is not a DOM element.

在练习官网案例时,使用create-react-app创建项目后,删除src下所有文件,新建了index.html、index.css、index.js。其中:

index.html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>Document</title>
    </head>
    <body>
        <div id="container"></div>
    </body>
</html>

index.js:

const root = ReactDOM.createRoot(document.getElementById("container"));
//const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(<FilterableProductTable products={PRODUCTS} />);

当使用getElementById("hello")时报错:react-dom.development.js:29345 Uncaught Error: createRoot(...): Target container is not a DOM element.

当使用getElementById("root")时正常。

网上该报错原因多是getElementById中参数填写错误,与html中的id不一致。不过本次id均一致填写了"container"。

后在新项目中发现默认index.html文件应在public目录下,而非src目录下,默认index.html中有root节点,所以当使用getElementById("root")时正常。

解决方法:将自己编写的index.html放到public目录下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值