Arkadaşlar selam, uzun zamandır React ile uğraşıyorum ama bugün başıma gelen bir şey var ki resmen çıldırttı. Bir bileşenim var, state'ini setState ile güncelliyorum, console.log ile bakıyorum state gerçekten değişiyor, fakat UI'da hiçbir şey olmuyor. Yani bileşen yeniden render edilmiyor, ekranda hala eski hali görünüyor. Özellikle bir liste bileşeninde çalışıyorum, bir butona tıklayınca listeye yeni bir eleman eklenmesini istiyorum, state array'ine push yapıp sonra setState ile atıyorum ama nafile. Acaba yanlış bir yerden mi yaklaşıyorum?
Daha önce benzer bir sorun yaşayan var mı? Mesela objelerle çalışırken referans sorunu olabiliyor biliyorum, ama array'de de aynı şey geçerli mi? setState'i çağırdıktan sonra React'in Virtual DOM'u karşılaştırması için state'in referansının değişmesi gerekiyor sanırım. Ben direkt array'e push yapıp aynı referansı veriyorum, bu yüzden React değişikliği algılamıyor olabilir. Ama bu kadar basit bir şey için spread operator ile yeni array oluşturmak zorunda mıyım? Yoksa başka bir yöntem mi var? Bir de useEffect ile state değişimini yakalamaya çalıştım, dependency array'e state'i ekledim, console'da değişimi görüyorum ama UI hala aynı. Bu noktada bileşenin alt bileşenlerinde key prop'larıyla mı oynamalıyım?
Açıkçası bu durum canımı sıkıyor çünkü proje büyüdükçe bu tarz performans sorunları daha da artacak gibi geliyor. Belki de React'in yeniden render mantığını tam anlamadığımdan oluyordur. Sizin tecrübeleriniz neler? Bu sorunu yaşayan varsa nasıl çözdü? "forceUpdate" gibi hack'ler kullanmadan, temiz bir React yaklaşımı ile bu işin üstesinden nasıl gelebilirim? Görüşlerinizi merakla bekliyorum, çünkü bir yerlerde ufak bir detayı kaçırdığımı hissediyorum.
Daha önce benzer bir sorun yaşayan var mı? Mesela objelerle çalışırken referans sorunu olabiliyor biliyorum, ama array'de de aynı şey geçerli mi? setState'i çağırdıktan sonra React'in Virtual DOM'u karşılaştırması için state'in referansının değişmesi gerekiyor sanırım. Ben direkt array'e push yapıp aynı referansı veriyorum, bu yüzden React değişikliği algılamıyor olabilir. Ama bu kadar basit bir şey için spread operator ile yeni array oluşturmak zorunda mıyım? Yoksa başka bir yöntem mi var? Bir de useEffect ile state değişimini yakalamaya çalıştım, dependency array'e state'i ekledim, console'da değişimi görüyorum ama UI hala aynı. Bu noktada bileşenin alt bileşenlerinde key prop'larıyla mı oynamalıyım?
Açıkçası bu durum canımı sıkıyor çünkü proje büyüdükçe bu tarz performans sorunları daha da artacak gibi geliyor. Belki de React'in yeniden render mantığını tam anlamadığımdan oluyordur. Sizin tecrübeleriniz neler? Bu sorunu yaşayan varsa nasıl çözdü? "forceUpdate" gibi hack'ler kullanmadan, temiz bir React yaklaşımı ile bu işin üstesinden nasıl gelebilirim? Görüşlerinizi merakla bekliyorum, çünkü bir yerlerde ufak bir detayı kaçırdığımı hissediyorum.