У вас paginatorPage вызывается внутри рендера, а он меняет стейт, что вызывает перерендер, а в рендере вызывается paginatorPage, и так вечно.
Дополнение:
1) paginatorPage должен быть либо функцией, либо функцией обработчиком, но не одновременно как у вас, из-за чего приходится костылить с созданием липового event'a.
2) У вас в описании цикла for зачем-то setState.
3) Не используйте в качестве key индекс массива.
4) Эта строка излишня
onClick={(e)=>{paginatorPage(e)}}
Можно просто написать
onClick={paginatorPage}
а paginatorPage обернуть в useCallback.
5) Что тут происходит, я не понял
setArrItems(arrItems=[...arrList])
но понял точно, что происходит совсем не то, что вы от этого ждете.
6) Где сеттер для?
let [itemsPerButton] = useState(10)
7) Точки с запятой, у вас они отсутствуют, ставьте их всегда.
8) Так нельзя писать
setFinishIndex(finishIndex=basicNum*10)
Во первых, finishIndex это стейт, его нужно менять только через соответствующую функцию set*, во вторых, не нужно производить присваивания внутри каких-то других операциях, т.к. код становится непонятным и запутанным.