我创建了一个类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和令牌,而无需从每个组件的钥匙串重写数据提取代码?