متوجه شدم. مشکل این است که در دسکتاپ هم layout افقی نمایش داده میشود. باید فقط در گوشی موبایل که افقی میشود این layout فعال شود.
اصلاح شد. حالا منطق تشخیص افقی/عمودی اینگونه است:
تشخیص موبایل با دو شرط انجام میشود: 1) پشتیبانی از touch و 2) اندازه کوچک صفحه (حداکثر 500px در بعد کوچکتر).
The code returns the following error:
Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render.
at (/components/game/confetti)
Revise the code to address the error.
I was previewing: /
مشکل: colors به عنوان default prop یک آرایه جدید در هر رندر ایجاد میکند و باعث اجرای بینهایت useEffect میشود.
مشکل حل شد. آرایه DEFAULT_COLORS را به خارج از کامپوننت منتقل کردم تا در هر رندر یک reference ثابت داشته باشد و useEffect بینهایت اجرا نشود.