在 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);
    }
}