当前位置: 首页 > 知识库问答 >
问题:

“bool”类型不是cast - flutter/dart类型中“List”类型的子类型

慕嘉运
2023-03-14

我试图在共享首选项中设置字符串列表,但出于未知原因,它会抛出以下错误

在类型转换中,类型“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类型值分配给任何变量,那么为什么会出现此错误?

共有2个答案

柯河
2023-03-14

如果您看一下文档,您会看到< code>setStringList返回< code>Future

洪宇定
2023-03-14

等待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>;
 类似资料: