【问题标题】:adding json data to shared preferences more than once in flutter在颤动中多次将 json 数据添加到共享首选项
【发布时间】:2020-03-23 09:58:46
【问题描述】:
         RaisedButton(
          onPressed: () async {
            SharedPreferences pref = await SharedPreferences.getInstance();
            List<String> item = [
              widget.menu.iName.toString(),
              widget.menu.iId.toString(),
              widget.menu.iCount.toString()
            ];
            List<String> items = [];
            if (item != null) {
              items.addAll(item);
              pref.setStringList('products', items);
            } else {
              print("there are no items");
            }
          },
          child: Text("Add"),
        ),



         RaisedButton(
          onPressed: () async {
            List<String> myItems = await SharedPrefLib.listOfProducts();
            if (basket != null) {
              basket.forEach((f) {
                print(f);
              });
            } else {
              print("there is nothing");
            }
          },
          child: Text("show products"),
        ),

我想在共享偏好中添加多个产品列表,但每次点击添加按钮时,它只会添加一个产品列表,仅此而已。

【问题讨论】:

    标签: json list flutter dart sharedpreferences


    【解决方案1】:

    原因是你每次点击凸起按钮时都会重置items
    所以items 列表不会保留历史记录item

    List<String> items = [];
    

    你必须把这条线移出凸起的按钮

    代码sn-p

    List<String> items = [];
    
    RaisedButton(
              onPressed: () async {
                SharedPreferences pref = await SharedPreferences.getInstance();
                List<String> item = [
                  widget.menu.iName.toString(),
                  widget.menu.iId.toString(),
                  widget.menu.iCount.toString()
                ];
    
                if (item != null) {
                  items.addAll(item);
                  pref.setStringList('products', items);
                } else {
                  print("there are no items");
                }
              },
              child: Text("Add"),
            ),
    

    【讨论】:

    • 我试过了,先生,但仍然不能按我的意愿工作,它只是列出了列表中的最后一项
    • paste.ubuntu.com/p/p2c74KSnCw 这是代码的最后一个版本
    • 这一行列表 urunler = [];坐在你的类 SharedPrefLib 中,你必须把它移出类 SharedPrefLib
    • 我是在写完最后一条评论后才这样做的,然后我意识到使用此代码 pref.setStringList('products', items); 存在问题我使用它而不是使用我的 addToChart() 方法。顺便谢谢兄弟
    猜你喜欢
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多