首页 > 解决方案 > Flutter - 如何更改和保存从 SharedPreferences 检索到的整数?

问题描述

我从 SharedPreferences 中检索一个整数,我需要将此值与另一个整数相加,但是当我运行该方法时,我得到一个带有总和的无限循环。

我正在调用 updateScore 方法来获取之前保存在 SharedPreferences 中的值,然后使用 updateScore 方法更改该值,使用 saveScore 方法将值保存在 SharedPreferences 中,然后在 Text() 中显示该值。

  int currentScore;
  final int earnedScore;

  @override
  Widget build(BuildContext context) {

      updateScore();
      setScore();

   return....

}

Future<int> getScore() async {

    SharedPreferences prefs = await SharedPreferences.getInstance();
    return prefs.getInt(widget.keyNameScore);

  }

  Future<void> saveScore(int score) async{

    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.setInt(widget.keyNameScore, score);

  }


  void updateScore() async{

    getScore().then((value){

      currentScore = value;

      currentScore = currentScore + earnedScore;

      saveScore(currentScore);

    });

  }


  void setScore(){

    getScore().then((value){

      setState(() {
        currentScore = value;
      });

    });

  }

标签: dartflutter

解决方案


我不得不将我的方法从构建移到 initState。


推荐阅读