我们正在运行flutter null安全迁移并完成了相同的操作,但在运行应用程序时,我们面临未处理的异常:类型“Null”不是类型“String”的子类型
static Future<AppStrings> getAppText(String local) async {
var appTextBox = await Hive.openBox("appTextBox");
AppStrings appText = new AppStrings(
mainPageTitle: appTextBox.get('mainPageTitle'), ==> error on this line
....
);
return appText;}
我已经尝试添加static Future〈AppStrings?〉&&AppStrings?appText,就像其他解决方案中建议的那样,但它会引发进一步的错误Error: The argument type 'AppStrings?' can't be assigned to the parameter type 'AppStrings' because 'AppStrings?' is nullable and 'AppStrings' isn't.
2条答案
按热度按时间dtcbnfnu1#
我不知道
AppStrings
是什么,但似乎mainPageTitle
在那里是一个String
和appTextBox.get('mainPageTitle')
返回null
,你不能这样做。有两个可能的选择:
1.通过将
AppStrings
中的String
更改为String?
,使mainPageTitle
可为空。这可能需要您在代码中进行额外的更改以处理它为空,因此第二种选择更容易。1.或者,在
null
的情况下,将其返回为空字符串。kse8i1jr2#
试试这个: