2017-07-29 131 views
-1

我正在使用React Native開發示例應用程序。我的問題是,我獲取的登錄憑據保存在登錄頁面localstorage()異步存儲中,該值存儲在index.ios.js文件中,但值顯示爲空。React-native IOS和Android中的自動登錄問題

中的任何一個,請告訴我,當我登錄到go_to_main頁面,顯示login屏幕和主屏幕後,這是我的主要問題

顯示我可以得到index.ios.js文件中的值之後。這裏是我的代碼:

/** 
* Sample React Native App 
* https://github.com/facebook/react-native 
* @flow 
*/ 

import React, { Component } from 'react'; 
import { 
    AppRegistry, 
    StyleSheet, 
    Text, 
    AsyncStorage, 
    View 
} from 'react-native'; 
import NavigationExperimental from 'react-native-deprecated-custom-components'; 
var loginScene //= require('./src/bundles/Login/scenes/LoginScene/index.js'); 
var SplashScreen = require('@remobile/react-native-splashscreen'); 

class SampleApp extends Component { 

    constructor(props) { 
     super(props); 
     this.state = { 
      email:'', 
      userName:'' 

     } 
    } 

    componentWillMount() { 


     AsyncStorage.getItem('Email',(err,Email)=>{ 
      if(Email == null){ 

      } 
      else{ 
      AsyncStorage.getItem('userName',(err,userName)=>{ 
       if(userName == null){ 

       } 
       else{ 
        this.setState({ 
        email:Email, 
        userName:userName 
        }) 
       } 

      }).done() 
      } 
      }).done() 
    } 

    render() { 
    if(this.state.email != null){ 

     loginScene = require('./src/bundles/Dashboard/scenes/koopiMainScene/index.js'); 
    } 
    else{ 
     alert("email1111:"+this.state.email) 
     loginScene = require('./src/bundles/Login/scenes/LoginScene/index.js'); 

    } 
    return (
     <View style={{flex:1,backgroundColor:'white'}}> 
      <NavigationExperimental.Navigator 
       initialRoute={{ 
       component:loginScene, 
       passProps:{menuTitle:this.state.userName, Email:this.state.email} 
       }} 
       configureScene={(route) => ({ 
        ...NavigationExperimental.Navigator.SceneConfigs.HorizontalSwipeJump, 
        gestures: false 
        })} 
       renderScene={(route, navigator) =>{ 
        return <route.component navigator={navigator} {...route.passProps} />; 
       }}/> 

     </View> 
    ); 
    } 
} 

AppRegistry.registerComponent('SampleApp',() =>SampleApp); 
+1

請修改您的問題。儘可能糾正拼寫和語法錯誤。不要以大寫字母開頭。 –

+0

只是爲了更好地理解你的問題,你想顯示登錄屏幕,如果用戶爲空? – gbland777

+0

但值顯示爲空 – Lavaraju

回答

0

我don'nt看到你的代碼,你在哪裏存儲值在localStorage的 所以按照我的看法,你可以用這種方式來存儲和獲取價值形態的localStorage

AsyncStorage.setItem('user', JSON.stringify(email)); 

並獲取數據,你應該使用解析方法

AsyncStorage.getItem('user', (err, result) => { 
    const usermail = JSON.parse(result); 
    console.log(useremail) 
}); 

通過這種類型的,你不會得到你的價值 可能是這可以幫助你

+0

感謝您的迴應,實際上當我在此屏幕登錄設置AsyncStorage.setItem('用戶',JSON.stringify(電子郵件)); alerady我設置了,之後,我可以在起始頁中使用這個我正在獲取componentWillmount()方法。 – Lavaraju

+0

哪些值顯示爲空,用戶名或電子郵件,讓我知道我可以幫助這 –

+0

電子郵件只有請檢查一次我的以上代碼 – Lavaraju