Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 来自getter的React本机返回函数_Javascript_Reactjs_React Native - Fatal编程技术网

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);
        });
}
摘要


您得到一个函数是因为您没有调用函数,而是使用对函数的引用作为值,而不是调用函数来获取返回值。

是的,在重构到新类后,我似乎忘记了添加括号。谢谢