在 React Native iOS 和 Android expo 应用程序中保存单个字符串
Save a single string in React Native iOS and Android expo app
我尝试过使用异步存储,但显然我遗漏了一些东西 - 如果有人可以提供帮助,我们将不胜感激。
saveLevel = async () => {
try {
let levelToSave = String(this.state.level);
await AsyncStorage.setItem("level", levelToSave);
} catch (err) {
console.log(err);
}
};
我从 setState({}, ()=> {here()})
的回调中调用这个函数
但是,我只需要持久存储 1 个字符串。我想过使用 fs.readFile 但这在 React 中不可用。
当然有一个小技巧可以持久保存这个字符串。谢谢。
p.s。我不介意实现这一目标的丑陋方式。
componentDidMount() {
let getLevelAsync = this.getLevel();
console.log(getLevelAsync)
*logs*
Promise {
"_U": 0,
"_V": 0,
"_W": null,
"_X": null,
}
getLevel = async () => {
try {
let level = await AsyncStorage.getItem("level");
console.log(level, 'trying to get level')
if (level !== null) {
return level;
}
} catch (err) {
console.log(err, 'no get worky');
}
};
在 didMount() 函数中调用了 getLevel
您是否从存储中获取存储的字符串?
const str = await AsyncStorage.getItem("level");
为了使其持久化,您需要从存储中获取它并将其设置为状态变量的初始值。
编辑:
在 componentDidMount() 中尝试以下操作;
componentDidMount(){
this.getLevel().then((level)=>{
console.log('level =', level);
}
}
我尝试过使用异步存储,但显然我遗漏了一些东西 - 如果有人可以提供帮助,我们将不胜感激。
saveLevel = async () => {
try {
let levelToSave = String(this.state.level);
await AsyncStorage.setItem("level", levelToSave);
} catch (err) {
console.log(err);
}
};
我从 setState({}, ()=> {here()})
的回调中调用这个函数但是,我只需要持久存储 1 个字符串。我想过使用 fs.readFile 但这在 React 中不可用。
当然有一个小技巧可以持久保存这个字符串。谢谢。
p.s。我不介意实现这一目标的丑陋方式。
componentDidMount() {
let getLevelAsync = this.getLevel();
console.log(getLevelAsync)
*logs*
Promise {
"_U": 0,
"_V": 0,
"_W": null,
"_X": null,
}
getLevel = async () => {
try {
let level = await AsyncStorage.getItem("level");
console.log(level, 'trying to get level')
if (level !== null) {
return level;
}
} catch (err) {
console.log(err, 'no get worky');
}
};
在 didMount() 函数中调用了 getLevel
您是否从存储中获取存储的字符串?
const str = await AsyncStorage.getItem("level");
为了使其持久化,您需要从存储中获取它并将其设置为状态变量的初始值。
编辑:
在 componentDidMount() 中尝试以下操作;
componentDidMount(){
this.getLevel().then((level)=>{
console.log('level =', level);
}
}