Flutter Null安全迁移-未处理异常:类型“Null”不是类型“String”的子类型

i7uq4tfw  于 2023-04-22  发布在  Flutter
关注(0)|答案(2)|浏览(188)

我们正在运行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.

dtcbnfnu

dtcbnfnu1#

我不知道AppStrings是什么,但似乎mainPageTitle在那里是一个StringappTextBox.get('mainPageTitle')返回null,你不能这样做。
有两个可能的选择:
1.通过将AppStrings中的String更改为String?,使mainPageTitle可为空。这可能需要您在代码中进行额外的更改以处理它为空,因此第二种选择更容易。
1.或者,在null的情况下,将其返回为空字符串。

kse8i1jr

kse8i1jr2#

试试这个:

static Future<AppStrings> getAppText(String local) async {
var appTextBox = await Hive.openBox("appTextBox");
 AppStrings appText = new AppStrings(
  mainPageTitle: appTextBox.get('mainPageTitle') ?? "",
  ....
);
return appText;}

相关问题