Есть компонент, который отображает внутри себя таблицы
Изначально он пустой и только при нажатии на кнопку, делает запрос и после рендерит таблицу
Но при смене таблиц, они начинают моргать
Как сделать так, чтобы при смене таблиц, они не моргали, а отображались моментально?
Вроде
useLayoutEffect
должен с этим бороться, но не понял, как в моем случае его применить
const btn_list = [
{ id: 1, link: 'Cities' },
{ id: 2, link: 'Countries' },
{ id: 3, link: 'Companies' },
]
function createTable(data: Rows[]) {
return(
<table className={style.table}>
<thead>
{createTableHeader(data)}
</thead>
<tbody>
{data.map((item, i) => craeteTableRow(item, i))}
</tbody>
</table>
)
}
export const Tables = () => {
const tables = useRef(null)
const [getTable, { data: table = [], isLoading }] = useGetTableMutation()
function handleClick(link: string) {
getTable(link)
}
return(
<div className={'page'}>
<section>
<div className={style.submenu}>
{btn_list.map(item => <button onClick={() => handleClick(item.link)} key={item.id}>{item.link}</button> )}
</div>
</section>
<section>
{isLoading && <div className={style.noTable}></div> }
<div ref={tables} className={style.tableWrapper}>
{Boolean(table.length) && createTable(table)}
</div>
</section>
</div>
)
}