Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 我是否可以存储具有共享首选项的列表_Dart_Flutter - Fatal编程技术网

Dart 我是否可以存储具有共享首选项的列表

Dart 我是否可以存储具有共享首选项的列表,dart,flutter,Dart,Flutter,我想在本地存储API中的值列表。共享首选项是否允许存储列表,因为每次我尝试在共享首选项中保存我的值时,我得到的类型“List”不是类型“List”的子类型 Future fetchAllProduct() async{ try{ for(int j = 1; j < 3; j++){ final response = await http.get('https://website/api/?page=1', ); List r

我想在本地存储API中的值列表。共享首选项是否允许存储列表,因为每次我尝试在共享首选项中保存我的值时,我得到的类型“List”不是类型“List”的子类型

Future fetchAllProduct() async{
     try{
        for(int j = 1; j < 3; j++){
      final response = await 
  http.get('https://website/api/?page=1', 
     );
    List result = json.decode(response.body);
    products.addAll(result);

    //Saving fetched product list
    SharedPreferences preferences = await SharedPreferences.getInstance();
    preferences.setStringList('prds', products);

    //final prds = preferences.getStringList('prd');
    }
  }catch (ex){
    print('$ex');
  }
  print(products);

}
我期待看到这样的清单
[{ProductID:155,Name:Multi-vit,Description:Multi-vit,CostPrice:0.0,SalePrice:80,eatoupprice:80,CategoryID:976,Barcode:,TaxRateID:null,}]

根据共享的首选项,应该可以存储列表。他们的测试用例的语法与您的略有不同: preferences.setStringList'List',kTestValues2['flatter.List']与您的方法不同

我假设您已将产品定义为列表

编辑:
为什么要将列表存储在列表中?如果将结果设置为字符串,会发生什么情况?

根据共享的首选项,应该可以存储列表。他们的测试用例的语法与您的略有不同: preferences.setStringList'List',kTestValues2['flatter.List']与您的方法不同

我假设您已将产品定义为列表

编辑:
为什么要将列表存储在列表中?如果将结果设置为字符串会发生什么情况?

一种简单的方法是将列表编码为JSON并将其保存为字符串

导入“dart:convert”显示json; 导入“package:shared_preferences/shared_preferences.dart”; void setListString键,列表值异步{ 等待setStringkey,json.encodevalue; } 设置列表‘键’,[];
一种简单的方法是将列表编码为JSON并将其保存为字符串

导入“dart:convert”显示json; 导入“package:shared_preferences/shared_preferences.dart”; void setListString键,列表值异步{ 等待setStringkey,json.encodevalue; } 设置列表‘键’,[];