Сколько не пытался не могу сделать так чтобы log возвращал ключи chilNode. Как я понял это происходит из-за того, что когда вызывается log у меня не успевает отработать код который нарисует мне кнопки для пагинации (которые и должны быть chilNode). Пишу async и await на log и ts говорит что в этом нет смысла.
import React, { FC, useEffect, useRef, useState } from 'react'
import cl from './Pagination.module.css'
interface IPaginationProps {
postsPerPage: number
totalPosts: number
paginate: Function
}
const Pagination: FC<IPaginationProps> = ({ postsPerPage, totalPosts, paginate }) => {
const [first, setFirst] = useState(0)
const [second, setSecond] = useState(2)
const divRef = useRef<HTMLDivElement>(null)
const pageNumbers = []
for (let i = 1; i <= Math.ceil(totalPosts / postsPerPage); i++) {
pageNumbers.push(i)
}
useEffect(() => {
const sliceHandler = async (element: ChildNode) => {
let childNodeElement = element as HTMLDivElement
console.log(childNodeElement.getAttribute('key'));
}
sliceHandler(divRef.current!)
}, [])
return (
<div className={cl[`pagination__conteiner`]} ref={divRef}>
{pageNumbers.slice(first, second).map((number: number) => (
<button className={cl[`elem`]} key={number} onClick={() => paginate(number)} >{number}</button>
))
}
</div >
)
}
export default Pagination;