Для пояснения, скажем, у меня есть 3 компонента: <Child>, <Parent>, <GrandParent>
Я пытаюсь отрисовать <Child>
в <GrandParent>
, без рендеринга <Parent>
(из которого <Child>
call).
parent.js
class Parent extends Component {
...
componentDidMount() {
return (
<Route ... component={ Child } />
);
}
render() {
// the <Route> element is rendered here
}
}
При нажатии на ссылку в <Parent>
я хочу, чтобы <Parent>
был размонтирован, а <Child>
- для рендеринга.в пределах <GrandParent>
, чего и должна достичь новая функция React 'Portal'.
Из документа вот как это должно быть реализовано:
ReactDOM.createPortal(componentToRender, elementToRenderInto);
// Hence in my case:
ReactDOM.createPortal(<Child />, document.getElementById('grand-parent'));
Но я не уверен, как / где использовать этот кусок кода.Все, что я пытался отобразить <Child>
рядом с <Parent>
, это не то, что я хочу.Советы / документация / примеры по теме очень приветствуются