2017-08-21 26 views
0

當用戶打開應用程序並將其保存到道具時,我們如何檢查AsyncStorage。如何在用戶打開應用程序時檢查AsyncStorage並將其保存到道具

從這個代碼,我救不了「令牌」道具

async onAuthComplete(props) { 
    let token = await AsyncStorage.getItem("auth_token"); 
    if(!_.isNull(token)) { 
     console.log('token exist! not null!') 
     this.props.token = token; 
    } 
    console.log('props token'); 
    console.log(this.props.token); <- prints null :(
    if (props.token) { 
     this.props.navigation.navigate('Main'); 
    } 
    } 

我不想檢查AsyncStorage每次我要把令牌頭。所以我決定將它存儲在道具中!這個主意不好嗎?我找不到像Instagram或Facebook這樣的授權流程的任何示例。

讓我知道是否有什麼不清楚。我來這裏編輯問題。 :)

- >我正在使用react-Redux

非常感謝!

+0

你是不是克雷克斯?他們有一個rehydrate reducers – sourRaspberri

+0

是的,我正在使用Redux。我不知道如何在應用程序流中使用「Rehydrate Reducer」。你能解釋更多嗎? –

回答

0

您需要例如創建行動: setToken = token => { return { type: SET_TOKEN, payload: token } ; }或如https://github.com/gaearon/redux-thunk

,那麼你需要寫減速機可以使用中間件:

export default(state = { token: '' }, action) => { 
switch(action.type) { 
    case SET_TOKEN: { 
    return { ...state, token: action.payload }; 
    } 
    default: return state; 
} 
} 

,那麼你需要Redux的商店連接到您的組件(尋找'react-redux')

更多詳情http://redux.js.org/

相關問題