用户打开应用程序时如何检查 AsyncStorage 并将其保存到道具

Posted

技术标签:

【中文标题】用户打开应用程序时如何检查 AsyncStorage 并将其保存到道具【英文标题】:How to check the AsyncStorage when user opens the app AND save it to the props 【发布时间】:2018-01-29 06:10:50 【问题描述】:

当用户打开应用并保存到 props 时,我们如何检查 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

非常感谢!

【问题讨论】:

你在使用 redux 吗?他们有一个再水化还原剂 是的,我正在使用 Redux。我不知道如何在我的应用程序流中使用“rehydrate reducer”。你能解释更多吗? 【参考方案1】:

您需要创建操作,例如: setToken = token => return type: SET_TOKEN, payload: token ; 或者可以使用https://github.com/gaearon/redux-thunk等中间件

那么你需要写reducer:

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

然后你需要将 redux store 连接到你的组件(寻找'react-redux')

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

【讨论】:

以上是关于用户打开应用程序时如何检查 AsyncStorage 并将其保存到道具的主要内容,如果未能解决你的问题,请参考以下文章

ReactNative:如何检查用户是不是已授予 gps 权限

React Native:如何检查用户是否已授予gps权限

React Native iOS:检查通知权限内存泄漏,如何在应用启动时检查通知权限?

如何检查用户是不是打开了通知中心

Ionic3 OneSignal 如何检查应用程序是不是由于通知打开事件而启动

如何设计一个 RESTful API 来检查用户的凭据?