首页 > 其他分享 >Flutter开发遇到The instance member 'widget' can't be accessed in an initializer.错误

Flutter开发遇到The instance member 'widget' can't be accessed in an initializer.错误

时间:2023-11-04 11:33:01浏览次数:33  
标签:numIterations widget int required initializer member final

问题描述

The instance member 'widget' can't be accessed in an initializer.

image.png

问题原因

"The instance member 'widget' can't be accessed in an initializer" 错误是因为在初始化器列表中(constructor initializer list)访问了 widget 成员。这是因为在构造函数的初始化器列表中,对象的属性(包括 widget)还没有被初始化,因此不能在这里访问它们。

有问题的源码

class CountdownTimer extends StatefulWidget {
  final int duration;
  final int numIterations;
  final int breakTime;

  const CountdownTimer({
    Key? key,
    required this.duration,
    required this.numIterations,
    required this.breakTime,
  }) : super(key: key);

  @override
  State<CountdownTimer> createState() => _CountdownTimerState();
}

class _CountdownTimerState extends State<CountdownTimer> {
  final String countDownMusic='assets/beat.mp3';
  final String restMusic='assets/piano.mp3';
  late Timer _timer;
  double _timeProgress = 1.0;
  double _numProgress = 1.0;
  int rounds = widget.numIterations;

解决方法

int rounds = widget.numIterations;

这一句增加一个late修饰符

late int rounds = widget.numIterations;

标签:numIterations,widget,int,required,initializer,member,final
From: https://blog.51cto.com/u_15777557/8180893

相关文章

  • QTreeWidget 的搜索实时显示功能
    QTreeWidget的子条目很多时候需要提供实时的搜索功能,以便能快速找到所需要的条目。代码如下://1.创建当输入框文本变化时的信号槽。connect(ui.lineEditSearch,&QLineEdit::textChanged,this,&Demo01_GUI::OnFindItem);//2.槽函数实现检索时,实时显示符合要求的QTre......
  • QTreeWidget 添加右键菜单
    有时需要为QTreeWidget的子条目添加右键菜单功能,主要有两种方案来实现:方案一该方案比较通用,通过为QTreeWidget建立信号槽,在接受itemPressed的信号时会被触发,然后判断当前是否为鼠标右键,若为鼠标右键则创建添加对应的菜单栏,并提供相应的功能。//1.QTreeWidget*tree为......
  • odoo 的一些widget
    widget="ace"widget="attachment_image"widget="boolean_button"widget="barcode_handler"widget="char_domain"widget="dummy"widget="char_domain"widget="char"......
  • Qt之停靠窗口(QDockWidget)
    一、QDockWidget概述QDockWidget是Qt中的一个窗口部件,用于创建可停靠的窗口,通常用于构建多文档接口(MDI)或可定制的用户界面。QDockWidget允许用户将窗口停靠在应用程序的主窗口周围,或将其拖动到独立的浮动窗口中。以下是有关QDockWidget的详细介绍和使用方法:QDockWidget......
  • VTK 标注类Widget 文字标注 vtkCaptionWidget
    目录Part1:简介Part2:效果 Part3:examplePart1:简介vtkCaptionWidget:用一个带线框及箭头的文本信息来标注某一对象;在可视化程序中,经常会对某个对象做一些标注说明;如,在医学图像诊断中,常常会手动标注出被诊断为肿瘤的区域或者其他病变区域,并用文字进行标注。Part2:效果vtkCapt......
  • 模型视图简介、QListWidget、QTreeWidget、QTableWidget、QStringListModel、QFileSys
    一、模型视图简介   有时,我们的系统需要显示大量数据,比如从数据库中读取数据,以自己的方式显示在自己的应用程序的界面中。早期的Qt要实现这个功能,需要定义一个组件,在这个组件中保存一个数据对象,比如一个列表。我们对这个列表进行查找、插入等的操作,或者把修改的地方写回,然后......
  • QT之QWidget::paintEngine: Should no longer be called的解决办法
    这个还是以前遇到的,今天突然想起来,就决定重现一下当初的错误,以及错误的代码。报错是这个样子的:QWidget::paintEngine:ShouldnolongerbecalledQPainter::begin:Paintdevicereturnedengine==0,type:1其实这个原因很简单,来看看报错的代码:#include"mainwindow.h"......
  • 解决QWidget::paintEngine: Should no longer be called QPainter::begin: Paint devi
    标题问题同时在运行后会附带以下问题:QPainter::setPen:PainternotactiveQPainter::font:PainternotactiveQPainter::setFont:Painternotactive或QWidget::paintEngine:ShouldnolongerbecalledQPainter::begin:Paintdevicereturnedengine==0,type:1以......
  • Pyside6多继承的坑(继承QWidget)
    python中支持多继承,并且可以针对不同父类传入不同的参数进行初始化:classA:def__init__(self,text):print(text)classB:def__init__(self,text):print(text)passclassC(B,A):def__init__(self):B.__init__(self,......
  • 初始化 Angular 懒加载模块:使用MODULE_INITIALIZER的高级技巧
    Angular是一个强大的前端开发框架,它提供了各种机制来优化应用程序的性能和可维护性。在本文中,我们将深入探讨Angular中的MODULE_INITIALIZER,这是一个用于初始化懒加载模块的强大工具。我们将详细介绍MODULE_INITIALIZER的用法以及它在Angular中的作用。什么是懒加载模块?懒加载模......