考虑以下示例:
class GridContainer extends React.Component {
...
render (){
return <div>
<Pagination portalId="portal-id"></>
<Grid ...>
</div>
}
}
class Grid extends React.Component {
...
render (){
return <div>
<div id="portal-id"></>
<table ...>
</div>
}
}
class Pagination extends React.Component {
...
render (){
return return ReactDOM.createPortal(<div>Paginator DOM...</div>, document.getElementById(this.props.portalId));
}
}Run Code Online (Sandbox Code Playgroud)
在其他组件DOM中呈现门户是否安全?我已经对其进行了测试,但是它不可靠。该Portals文档提到您可以在DOM节点中呈现门户,但是与组件DOM无关。
为什么这有所不同(在这里推测)?在更新门户网站父级组件时,在对帐过程中,差异可能会发现不一致之处并删除门户网站节点。
从我的测试来看,上述情况没有发生,但我不知道我是否可以假设React可以处理。问:
将门户呈现到另一个组件DOM中是否安全?