javascript - 如何在 typescript 中使用没有额外 div 的 createPortal?
问题描述
我经常像下面的代码一样使用 createPortal:
const containerEle = document.createElement('div');
const App = function(){
useEffect(()=>{
document.body.appendChild(containerEle);
return ()=>{
document.body.removeChild(containerEle);
}
},[])
return createPortal(<div className="my-component"/>, containerEle);
}
这将呈现像
<div><div className="my-component"/></div>
但实际上我只是想
<div className="my-component"/>
我尝试将 createElement('div') 修改为片段
const containerEle = document.createDocumentFragment();
它有效,但在打字稿中,它告诉我错误:
TS2345: Argument of type 'DocumentFragment' is not assignable to parameter of type 'Element'.
对于createDocumentFragment
返回 DocumentFragment。
我应该如何修改我的代码以消除此错误?
解决方案
推荐阅读
- python - 在 ubuntu 上,如何在现有的 python3.6(或更新版本)安装旁边安装 python3.5?
- apache-kafka - broker的数量和partition的数量会影响partition leader的选举吗?
- sql - SQL Server:为什么 SELECT * INTO 比 SELECT * 快(排除网络)
- c - 二维数组中某些满足条件的元素不显示
- .net - 在 Visual Studio 2019 上使用 .sass 扩展文件
- vue.js - VueJs Watch 每个模型的键
- sql - 将 Postgre 转换为 Bigquery
- spring-boot - spring boot:连接oracle数据库
- amazon-web-services - 在 null 中定义的 bean 'AmazonEc2InstanceDataPropertySourcePostProcessor' 无法注册
- angular - 特定服务中的标头问题