v2.5.2
Giriş yap

React verileri props olarak geçememe

noirgufers
309 defa görüntülendi ve 2 kişi tarafından değerlendirildi

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

Cevap yaz
Cevaplar (2)
mubado
899 gün önce

useState ler render dan önce çalışır o yüzden useeffect içerisine koyarsan sayfa yüklendikten sonra çalışır.

ebykdrms
899 gün önce

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>
    );
};