为了澄清起见,假设我有 3 个组件:<Child>, <Parent>, <GrandParent>
我正在尝试<Child>在不渲染的<GrandParent>情况下渲染<Parent>(从中<Child>调用)。
父.js
class Parent extends Component {
...
componentDidMount() {
return (
<Route ... component={ Child } />
);
}
render() {
// the <Route> element is rendered here
}
}
单击 inside 的链接时<Parent>,我想<Parent>卸载并<Child>在其中进行渲染<GrandParent>,这是 React 新功能“门户”应该实现的。
从文档中,这应该如何实现:
ReactDOM.createPortal(componentToRender, elementToRenderInto);
// Hence in my case:
ReactDOM.createPortal(<Child />, document.getElementById('grand-parent'));
但我不确定如何/在哪里使用这段代码。<Child>我尝试在旁边渲染的所有<Parent>内容,这不是我想要的。非常欢迎有关该主题的提示/文档/示例