大佬教程收集整理的这篇文章主要介绍了LateInitializationError:尚未为类模型初始化字段“错误”,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写我的第一个 Flutter 项目,但遇到此错误
Warning: Operand of null-aware operation '?.' has type 'APIResponse<bool>' which excludes null.
- 'APIResponse' is from 'package:notesapp/APIResponse/APIResponse.dart' ('lib/APIResponse/APIResponse.dart').
message = deleteResult?.errormessage ?? 'An error occured';
这是模型类
class APIResponse <T> {
late T data;
late bool error;
late String errormessage;
APIResponse({ data,error,errormessagE});
}
这就是我称这个模型的地方
noteListservice.getSingleNote(Widget.notEID).then((responsE) {
setState(() {
_isLoading = false;
});
if( response.error ){
errormessage = response.errormessage ?? 'An error occured';
}
singleNoteModel = response.data;
_titleController.text = singleNoteModel.notetitle;
_contentController.text = singleNoteModel.noteContent;
});
它在这个特定的地方抛出错误 - errormessage = response.errormessage ?? 'An error occured';
顶部复制/粘贴的代码实际上不是错误而是警告,不会停止您的应用程序的功能。
这也不是您在问题底部或标题中提到的与 response.errormessage
相关的同一段代码。最重要的警告是关于 deleteResult?.errormessage
。
无论如何,当您的应用点击由 APIResponse
标记的行时,似乎 error
对象,其 ↓**This line**↓
布尔字段尚未设置:
noteListservice.getSingleNote(widget.notEID).then((responsE) {
setState(() {
_isLoading = false;
});
// ↓**This line**↓ will throw if 'error' has not yet been set.
if( response.error ){
errormessage = response.errormessage ?? 'An error occured';
}
singleNoteModel = response.data;
_titleController.text = singleNoteModel.notetitle;
_contentController.text = singleNoteModel.noteContent;
});
一个解决方案是不将 error
布尔值定义为 late
,而只是定义一个常规的 bool
并为其赋予初始值 false
。这会破坏你的应用程序的逻辑吗?我会假设应用一开始就没有处于错误状态,所以从逻辑上讲这应该没问题?
我相信这会阻止 if ( response.error )
在到达时抛出。
class APIResponse <T> {
late T data;
bool error = false; // Give it a default value of false
late String errormessage;
APIResponse({ data,error,errormessagE});
以上是大佬教程为你收集整理的LateInitializationError:尚未为类模型初始化字段“错误”全部内容,希望文章能够帮你解决LateInitializationError:尚未为类模型初始化字段“错误”所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。