类型 'bool' 不是类型转换中的 'List<String>' 类型的子类型 - 颤振/飞镖



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

类型'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类型的值给任何变量,那么为什么会发生这个错误?

等待prefs。setString返回一个bool值,这就是你遇到错误的原因。参考参见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>

相关内容

最新更新