【问题标题】:Dart Error - Exception has occurred. LateError (LateInitializationError: Field 'results' has not been initialized.)Dart 错误 - 发生异常。 LateError(LateInitializationError:字段“结果”尚未初始化。)
【发布时间】:2022-01-13 04:04:57
【问题描述】:

我有一个错误,请帮助发生异常。 LateError(LateInitializationError:字段'results'尚未初始化。)

错误,为什么?

SS My Source Code1SS My Souce Code 2

【问题讨论】:

  • 1.不要将代码发布为屏幕截图。 2. 你的LoginUser.fromJson 构造函数没有在所有代码路径上初始化results
  • 我尝试发布代码问题但结果我无法发送问题,因此我做了截图
  • 我不知道您所说的“我无法发送问题”是什么意思。复制并粘贴您要询问的代码。 stackoverflow.com/help/how-to-askmeta.stackoverflow.com/q/285551

标签: android list flutter dart


【解决方案1】:

假设您调用了一个后期变量。通过说一个变量是迟到的,你向 Dart 保证你会在稍后的代码中初始化这个迟到的值。例如下面的代码:

class MyWidget extends StatefulWidget {
  const MyProfile({Key? key}) : super(key: key);
  @override
  _MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
  late String i;

  @override
  void initState() {
    super.initState();
    i = 'Some String';
  }

当你没有正确初始化变量时,你会得到一个运行时错误。

我看过你的代码图片。您正在从 api 获取数据,因此它需要时间,并且您的应用程序视图在数据到达之前就已加载。这就是你得到错误的原因。使您的列表可以为空或分配一个值。例如:

List<WelcomeModel> results = [];

List<WelcomeModel>? results;

分配一个空列表是一个更安全的选择,因为我认为您的列表视图构建器将获取结果列表的大小,并且在加载结果时使用 setState 来显示更新。

【讨论】:

  • 好的,我试试。
  • 如果答案对您有帮助,请选择它作为答案。
  • 你喜欢的方式我试过了,谢谢没有错误但是我的数据没有出现,只出现NULL,这是为什么啊?对不起,我的英语很麻烦,我需要谷歌翻译的帮助:D
  • 现在,当您获得价值时。在有状态的小部件中使用 setState
  • 一会,我先试了。
猜你喜欢
  • 2022-08-19
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 2022-07-27
  • 2021-10-27
  • 2021-12-29
  • 2022-01-16
  • 1970-01-01
相关资源
最近更新 更多