popular模块自定义标签的问题
来源:5-7 Popular(最热)模块的自定义标签功能实现-2
慕仔3427096
2018-08-08
做那个popular模块自定义标签的时候报这个错误 错误应该是 AsyncStorage.getItem这个方法引起的。我把这个删了就不会报错。看了好久实在看不出问题
这是languageDao.js里的代码 没看出哪里有问题
import React from 'react';
import { AsyncStorage } from 'react-native';
import keys from '../../data/keys.json';
export let FLAG_LANGUAGE = { flag_language: 'flag_language_language',flag_key: 'flag_language_key' };
export default class LanguageDao {
constructor(flag) {
this.flag = flag;
}
fetch() {
return new Promise((resolve,reject) => {
AsyncStorage.getItem(this.flag, (error, result) => {
if (error) {
reject(error)
}else {
if (result) {
try {
resolve(JSON.parse(result))
} catch (e) {
reject(e)
}
}else {
let data = this.flag === FLAG_LANGUAGE.flag_key ? keys : null;
this.save(data);
resolve(data);
}
}
})
})
}
save(data) {
AsyncStorage.setItem(this.flag, JSON.stringify(data), (error) => {
})
}
}
1回答
-
AsyncStorage.setItem(key,value)
AsyncStorage.getItem(key, ...)
AsyncStorage的存储和保存的key不能为空,检查下this.flag是不是为空了;
可参考:
https://github.com/facebook/react-native/issues/9743
https://github.com/facebook/react-native/issues/18602
012018-08-09
相似问题