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

时间:2017-08-21 08:30:33

标签: reactjs redux authorization react-redux jwt

当用户打开应用程序并将其保存到道具时,我们如何检查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这样的授权流程的例子。

如果有什么不清楚,请告诉我。我在这里编辑问题。 :)

- &gt;我正在使用react-Redux

非常感谢你!

1 个答案:

答案 0 :(得分:0)

您需要创建操作,例如: 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/