如何使用react native声明静态变量

时间:2017-12-05 15:42:11

标签: react-native

我创建了一个类Credentials,我想在其中放置用户ID和密码,然后将该类用于其他组件。

我试过这个

export default class Credentials extends Component {

static userID(){
  Keychain
    .getGenericPassword()
    .then(function(credentials) {

      return credentials.username;

    }).catch(function(error) {
      console.log('Keychain couldn\'t be accessed! Maybe no value set?', error);
    });
}

我的目标是通过调用Credentilas.userID()来获取ID,从而能够在其他组件中使用此方法。此代码返回undefined,可能是因为getGenericPassword()是异步的(?)。

所以我决定创建两个静态变量并在登录后设置一次

export default class Credentials extends Component {
  static useID = null;
  static  token = null;

static loadUserIdentifiers(){
  Keychain
    .getGenericPassword()
    .then(function(credentials) {
      //alert('Credentials successfully loaded for user ' + credentials.username);
      UserID = credentials.username;
      token = credentials.password;
    }).catch(function(error) {
      console.log('Keychain couldn\'t be accessed! Maybe no value set?', error);
    });
}

但是Credentials.userID仍然未定义。你有没有想过如何实现这一点,并与其他组件共享userID和令牌,而无需从每个组件的钥匙串重写数据提取代码?

0 个答案:

没有答案