2016-04-03 9 views
0

componentWillMount tanımlanmış bir işlevi olan "Uygulama" bileşenini oluşturdum (koşul yanlış olduğunda yönlendiriciyi yeniden yönlendirmelidir)."if" React'ın componentWillMount() içinde çalışmıyorsa)

componentWillMount() { 
    const isLoggedIn = session.getLogin() 
    console.log('isLoggedIn is', isLoggedIn) 
    if (!isLoggedIn) { 
     console.log('now its false!') 
    } else { 
     console.log('else') 
    } 
    return false 
} 

Ama konsol aşağıdaki çıktılar:

isLoggedIn is false 
else 

Yanlış mı yapıyorum? isLoggedIn'un false değerine ayarlı olduğunu düşünürken, konsol "şimdi yanlış!" Demeli, ise değil.) (Session.getLogin

return sessionstorage.getItem('sessionLoggedIn') anwsers için teşekkür ederiz yapar -

Sadece nota.

+0

'sessionstorage.getItem (' sessionLoggedIn ') ', bir dizeyi değil, bir boole döndürdüğünden emin misiniz? – GillesC

+0

Neden bunu düşünmedim! Haklısın, her şey çalışıyor. Aptal soru için üzgünüm :-) –

cevap

0

sessionStorage, tüm girdilerini Dizeler olarak kaydeder, böylece buradan çıktığınız değer aslında 'false' olur. Bunun dışında

componentWillMount() { 
    const isLoggedIn = session.getLogin() === 'true' 
    console.log('isLoggedIn is', isLoggedIn) 
    if (!isLoggedIn) { 
     console.log('now its false!') 
    } else { 
     console.log('else') 
    } 
    return false 
} 

, bu, çok güvensiz bir giriş işlevselliğini aslında ise: dönen dize sadece 'true' ise Yani kontrol etmeniz gerekir.

+0

Yardımın için teşekkürler, bunun bir ip olduğunu farketmedim. Güvende olması gerekmiyor, sadece bir iç kontrol. –