程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了LateInitializationError:尚未为类模型初始化字段“错误”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决LateInitializationError:尚未为类模型初始化字段“错误”?

开发过程中遇到LateInitializationError:尚未为类模型初始化字段“错误”的问题如何解决?下面主要结合日常开发的经验,给出你关于LateInitializationError:尚未为类模型初始化字段“错误”的解决方法建议,希望对你解决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,请注明来意。
标签: