Javascript 来自getter的React本机返回函数
我正在制作一个应用程序,它存储一些本地数据,例如身份验证令牌。 当应用程序关闭时,这些数据将被清除,因此我想将其移动到异步存储中 以前是这样的:Javascript 来自getter的React本机返回函数,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我正在制作一个应用程序,它存储一些本地数据,例如身份验证令牌。 当应用程序关闭时,这些数据将被清除,因此我想将其移动到异步存储中 以前是这样的: let LocalData = { token: '', name: '', otherStuff: '', moreStuff: '', }; export default LocalData; 我像LocalData.name='John'一样访问它 因此,基本上我已经重构了代码,使我的本地数据类成为异步存储的包装器 请看这里:
let LocalData = {
token: '',
name: '',
otherStuff: '',
moreStuff: '',
};
export default LocalData;
我像LocalData.name='John'一样访问它代码>
因此,基本上我已经重构了代码,使我的本地数据类成为异步存储的包装器
请看这里:
class LocalData {
setObjectForKey = async (key, value) => {
if (!key) throw new Error('Cannot set an value (' + value + ') without a key');
return await AsyncStorage.setItem(key, value)
};
setToken(token) {
this.setObjectForKey(KEY_TOKEN, token)
}
token = async () => {
try {
let item = await AsyncStorage.getItem(KEY_TOKEN);
if (item === null) { return 'N/A'; }
return item;
} catch (error) {
console.log('Error fetching token', error);
}
}
}
export default LocalData;
我想用这种方式储存大约10件物品。这是其中一个例子
然后我这样称呼它:
var localData = new LocalData();
doSomething(localData.token);
var localData = new LocalData();
localData.setToken(someToken);
或者,如果我设置了值,我会这样做:
var localData = new LocalData();
doSomething(localData.token);
var localData = new LocalData();
localData.setToken(someToken);
这是我的第一个React原生应用程序,所以我认为我的问题是我不知道正确的语法
有人能告诉我哪里出了问题吗
我的目标是要有一个基本的班,有能手和二传手
谢谢。看来这是你的问题:
var localData = new LocalData();
doSomething(localData.token); // << This line
承诺api
function foo () {
let localData = new LocalData();
localData.token()
.then(doSomething)
.catch(function (e) {
console.log("Error", e);
});
}
摘要
您得到一个函数是因为您没有调用函数,而是使用对函数的引用作为值,而不是调用函数来获取返回值。是的,在重构到新类后,我似乎忘记了添加括号。谢谢