Я много читал о Порталах и решил создать один.
У меня есть простая страница реакции, которая отображает таблицу.
Поэтому я сделал кнопку, которая при нажатии , размывает таблицу и открывает портал.
Это "работает", но по какой-то причине таблица не центрирована, как я вижу в статьях, которые я читал.
Это просто появляется внизу страницы, под размытой таблицей.
Вот мой портал:
function MyPortal() {
return ReactDOM.createPortal(
<div>
<div>My first Portal!</div>
<div>HEY YOU</div>
</div>,
document.getElementById('portal-root'),
document.getElementById('DisplayTable').style.filter = 'blur(5px)'
)
}
А вот моя табличная функция:
function DisplayTable() {
const [isPortalOpen, setIsPortalOpen] = useState(false);
// some data processing code for the table
return (
<div id="mainContent">
<div id="DisplayTable">
<table>
<tr>
<td>My Table</td>
</tr>
<tr>
<td><button onClick={() => { setIsPortalOpen(!isPortalOpen); }}>Portal Button</button></td>
</tr>
</table>
</div>
{isPortalOpen && (
<MyPortal />
)}
</div>
)
И вот мой основной указатель. js:
ReactDOM.render(
<React.Fragment>
<Table />
<div id="portal-root"></div>
</React.Fragment>,
document.getElementById('root')
)
Как сделать так, чтобы портал отображался в середине экрана, а не внизу?
Нужно ли использовать другой компонент или библиотека?
Спасибо!