Это происходит потому, что test
вначале истинно, поэтому вызывается titleScreen()
, и внутри этой функции вы изменяете состояние, которое запускает повторную визуализацию, и, поскольку test
никогда не меняет своего значения, он вызывает снова titleScreen()
, а затем вы попадаете в фантомную зону под названием The Infinite L oop. ?
Как это предотвратить? всегда изменяйте состояние, когда что-то происходит в вашем приложении, при взаимодействии с пользователем, вызове API и т. д. c. никогда не делайте этого при рендеринге страницы, или, если вы это сделаете, убедитесь, что вы нарушили условие, в этом случае измените значение test
в какой-то момент.