【发布时间】:2021-11-04 04:41:47
【问题描述】:
在我的应用程序中,我想保存一个包含ThemeData、一个布尔值和一个字符串变量的列表。我正在尝试映射该类以将其保存到Shared Preferences,但在对列表进行编码时出现此错误:
Converting object to an encodable object failed: Instance of 'ThemeData'
这是 CustomThemeModel 类:
class CustomThemeModel {
ThemeData myThemeData = new ThemeData();
String themeName;
bool readOnly = false;
CustomThemeModel({
required this.myThemeData,
required this.themeName,
required this.readOnly,
});
CustomThemeModel.fromMap(Map map) :
this.myThemeData = map['myThemeData'],
this.themeName = map['themeName'],
this.readOnly = map['readOnly'];
Map toMap(){
return{
'myThemeData': this.myThemeData,
'themeName': this.themeName,
'readOnly': this.readOnly,
};
}
}
以及将保存列表的 void 方法:
void saveData(){
List<String> spList = myThemes.map((e) => json.encode(e.toMap())).toList();
print(spList);
}
【问题讨论】:
标签: list flutter themes sharedpreferences