React verileri props olarak geçememe
Selamlar, firebase veritabanından veri alıyorum ve bunu useState() ile
kaydediyorum daha sonrasında bu verileri başka bir component yapısında
görüntülemek için bu useState içindeki değeri component'a props olarak
geçiyorum ama sonuç olarak undefined olarak dönüyor o component içinde
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
Merhaba. Siz verileri asenkron bir yapıda çekiyorsunuz. Doğrudan useState() içine yazdırıyorsanız aslında henüz veri gelmemişken state'in ilk değerini atıyorsunuz muhtemelen. State'e varsayılan olarak boş değer vermeli ve veritabanından gelen verileri useEffect altında bir promise yapısı içinde çağırmalısınız. Örneğin:
const MyComponent = () {
const [datasState, setDatasState] = useState(null);
useEffect(()=>{
new Promise(async (resolve,reject) => {
datas = await getMyData(); // bu fonksiyon ile veritabanınızdan verileri çekiyorsunuz diyelim...
if(datas) setDatasState(datas);
}).catch(()=>{ alert("hata var!!!"); });
},[]);
// datasState değerinin değişimlerini console'dan izleyelim
useEffect(()=>{
console.log("datasState", datasState);
},[datasState]);
return (
<div>
{ datasState
? <MyOtherComponent datas={datasState} />
: <div>Veriler yükleniyor...</div>
}
</div>
);
};