【问题标题】:Shared preference value not being changed upon trigger共享偏好值不会在触发时更改
【发布时间】:2020-08-22 14:54:43
【问题描述】:

这是我在满足条件时执行方法的代码。出于某种原因,“NEWPINCO”的值不会更改为我传递的“值”。我做错了什么吗?

dynamic NEWPINCO;
      addAddressPersistent(dynamic value) async {
        NEWPINCO = '';
        print("VALUE PASSED FOR PINCODE : $value");
        final SharedPreferences prefs = await SharedPreferences.getInstance();
        setState(() {
          prefs.setString('NEWPINCO', value);
          print("$NEWPINCO is the number");
        });
      }

控制台中调试语句的输出:

I/flutter ( 6129): VALUE PASSED FOR PINCODE : 281232
I/flutter ( 6129):  is the number

有人知道为什么 NEWPINCO 的价值没有改变吗?如您所见,NEWPINCO 的值是在方法调用期间初始化的 ''。

【问题讨论】:

    标签: android flutter dart flutter-layout flutter-dependencies


    【解决方案1】:

    您在代码开头将 NEWPINCO 声明为空字符串,是的,您在 shared_preferences 中使用 NEWPINCO 键保存了一个字符串,但这与您的动态对象无关

      dynamic NEWPINCO;
      addAddressPersistent(dynamic value) async {
        NEWPINCO = '';
        print("VALUE PASSED FOR PINCODE : $value");
        final SharedPreferences prefs = await SharedPreferences.getInstance();
        await prefs.setString('NEWPINCO', value); //setting it's a Future
        setState(() {
          NEWPINCO = prefs.getString('NEWPINCO');
          print("$NEWPINCO is the number");
        });
      }
    

    【讨论】:

      猜你喜欢
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多