首页 > 解决方案 > Unable to save sharepreference in flutter

问题描述

I am trying to call saveName but nothing is being saved. And also I can see that commit is deprecated so how do you save values within SharedPreferences

Future saveName(bool isloggedIn,String passwordval) async {
    sharedPreferences = await SharedPreferences.getInstance();
    sharedPreferences.setBool("is_logged_in ", isloggedIn);
    sharedPreferences.setString("password ", passwordval);
    sharedPreferences.commit();
  }

  getCredential() async {
    print("###coming inside getcredentials");
    sharedPreferences = await SharedPreferences.getInstance();
    setState(() {
      isloggedIn = sharedPreferences.getBool("is_logged_in");
      if (isloggedIn != null) {
        if (isloggedIn) {
          print("###isloggedin=true");
          passwordController.text = sharedPreferences.getString("password");
        } else {
          print("###isloggedin=false");
          passwordController.clear();
          sharedPreferences.clear();
        }
      } else {
        isloggedIn = false;
      }
    });
  }

标签: flutter

解决方案


检查您在创建首选项时使用的密钥以及在访问它时使用的密钥。它们不一样。sharedPreferences.setBool("is_logged_in ", isloggedIn)应该是await sharedPreferences.setBool("is_logged_in", isloggedIn)。删除 和 中的"is_logged_in "空格"password "。即使您不包括在内,您的偏好也会被保存sharedPreferences.commit();


推荐阅读