0

发布模式下的共享首选项值有时会显示旧值,在我的测试期间它会存储该值并可以获得我存储的新值以确保但在关闭应用程序并再次打开它之后,有时它会显示旧值,我在新的之前存储了它。

这是我的代码示例:存储和获取价值:

 void setToken(String userToken) async {
 var sharedPreferences = await shared;
 sharedPreferences.setString("$_token", userToken);
 print("token is: " +sharedPreferences.getString("$_token").toString());
 }
 
 Future getToken() async {
 var sharedPreferences = await shared;
 sharedPreferences.reload();
 String value = sharedPreferences.getString("$_token");
 print("your token: $value");
 return value;
  }

结果消息:

在第一家商店(获得第一个令牌): token is: eyJhbG.....Ai-A

第二个令牌存储: token is: eyJhbG....oKk

重新打开应用程序后,我得到了第一个令牌 your token: eyJhbG.....Ai-A

有没有人面临同样的问题?

4

3 回答 3

0

请复制粘贴以下代码:

 void setToken(String userToken) async {
 var sharedPreferences = await shared;
 sharedPreferences.setString("my_token", userToken);
 print("token is: " +sharedPreferences.getString("my_token").toString());
 }
 
 Future getToken() async {
 var sharedPreferences = await shared;
 sharedPreferences.reload();
 String value = sharedPreferences.getString("my_token");
 print("your token: $value");
 return value;
  }
于 2021-01-27T07:55:52.107 回答
0

试试这个解决方案,这可能有效:

void setToken(String userToken) async {
 SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
 sharedPreferences.setString("my_token", userToken);
 print("token is: " +sharedPreferences.getString("my_token").toString());
 }

Future getToken() async {
 SharedPreferences sharedPreferences = await SharedPreferences.getInstance();
 sharedPreferences.reload();
 String value = sharedPreferences.getString("my_token");
 print("your token: $value");
 return value;
 }

flutter clean在运行应用程序之前尝试。

于 2021-01-27T09:23:31.417 回答
0

请将此解决方案粘贴到您的代码中

 void setToken(String userToken) async {
 var sharedPreferences = await shared;
 sharedPreferences.setString("$_token", userToken);
 print("token is: " +sharedPreferences.getString("$_token").toString());
 }
 
 Future getToken() async {
 var sharedPreferences = await shared;
 String value = sharedPreferences.getString("$_token");
 print("your token: $value");
 return value;
  }
于 2021-01-27T08:26:29.407 回答