【发布时间】:2021-09-27 02:35:06
【问题描述】:
我创建了一个单独的类“DirectionDetails”;
class DirectionDetails{
int distanceValue;
int durationValue;
String distanceText;
String durationText;
String encodedPoints;
DirectionDetails(this.distanceValue, this.durationValue, this.distanceText, this.durationText, this.encodedPoints);
}
当我尝试通过DirectionDetails tripDirectionDetails; 在主类中初始化它时,它给出了
必须初始化不可为空的实例字段“tripDirectionDetails”
错误。但正如它所暗示的,当我添加“延迟”修饰符时 - 它不会显示任何错误但是当我运行应用程序时它给出了,
LateInitializationError:字段“tripDirectionDetails”尚未 初始化。
运行时错误
当我尝试在主类中初始化 tripDirectionDetails 时,我尝试了另一种方法,
DirectionDetails tripDirectionDetails = new DirectionDetails();
并修改DirectionDetails类,
class DirectionDetails{
int distanceValue;
int durationValue;
String distanceText;
String durationText;
String encodedPoints;
DirectionDetails({this.distanceValue = 0, this.durationValue = 0, this.distanceText = "", this.durationText = "", this.encodedPoints = ""});
}
应用程序运行成功,它检索“DirectionDetails”类中的所有值仅用于初始重启。
但是当我退出应用程序并返回时,它会给出以下错误。
LateInitializationError:字段“tripDirectionDetails”尚未 初始化。
非常感谢您的帮助。
谢谢
【问题讨论】:
-
您能说明
tripDirectionDetails的使用位置吗? -
@JohnOyekanmi Text(((tripDirectionDetails!= null) ? tripDirectionDetails.durationText : '') , style: TextStyle(fontSize: 16.0, color: Colors.grey),),
-
好的,我假设正在使用它的小部件是 StatefulWidget。如果是这种情况,请尝试在 initState 方法中初始化字段
tripDirectionDetails,然后再在任何地方使用它。像这样tripDirectionDetails = DirectionDetails().
标签: flutter google-maps dart non-nullable