繁体   English   中英

“bool”类型不是“List”类型的子类型<string> ' 在类型转换中 - flutter/dart</string>

[英]type 'bool' is not a subtype of type 'List<String>' in type cast - flutter/dart

我正在尝试在共享首选项中设置一个字符串列表,但由于未知原因,它抛出了以下错误

类型“bool”不是类型转换中类型“List”的子类型

这是我的代码

  List selectedItems = [];

  setList() async {
    var prefs = await SharedPreferences.getInstance();
    List<String> itemList = selectedItems.map((e) => e.toString()).toList(); // converted int list to string
    List<String> selectedItemsList = await prefs.setStringList('selectedItems', itemList) as List<String>; // error
  }

我没有将 bool 类型值分配给任何变量,那么为什么会出现此错误?

await prefs.setString 返回一个布尔值,这就是您遇到错误的原因。 作为参考,请参阅https://pub.dev/documentation/shared_preferences/latest/shared_preferences/SharedPreferences/setString.html

您可能想要做的是这样使用 getStringList :

List<String> selectedItemsList = await prefs.getStringList('selectedItems') as List<String>;

或者,如果您真的想保存列表,该行将是:

await prefs.setStringList('selectedItems', itemList) as List<String>;

如果您查看文档,您会看到setStringList返回Future<bool>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM