Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter getter导致超过最大调用堆栈大小_Flutter_Dart - Fatal编程技术网

Flutter getter导致超过最大调用堆栈大小

Flutter getter导致超过最大调用堆栈大小,flutter,dart,Flutter,Dart,我有以下小部件: class VennDiagramWidget extends StatefulWidget { VennDiagramWidget(selectedGeneLists); List<GenesListObjIndexed> get selectedGeneLists => this.selectedGeneLists; @override _VennState createState() => _VennState(); } cl

我有以下小部件:

class VennDiagramWidget extends StatefulWidget {
  VennDiagramWidget(selectedGeneLists);

  List<GenesListObjIndexed> get selectedGeneLists => this.selectedGeneLists;

  @override
  _VennState createState() => _VennState();
}

class _VennState extends State<VennDiagramWidget> {

  List<GenesListObjIndexed> _selectedGeneLists;

  @override
  initState() {
    _selectedGeneLists = widget.selectedGeneLists;
  }
我在这一行上得到并错误地超过了
最大调用堆栈大小
\u selectedGeneLists=widget.selectedGeneLists内部
initState

据我所知,这段代码应该使用我在第二个代码段中指定的
SelectedGeneList
来构造类
VennDiagramWidget
,当我调用这个类的getter时,我应该得到完全相同的变量。

我做错了什么?

问题是,当你调用getter
selectedGeneLists
时,它又在调用自己

//调用自身⬇
获取SelectedGeneList=>this.SelectedGeneList;
您需要在widget类中声明
selectedGeneLists
变量

这应该行得通

classvenndiagramwidget扩展StatefulWidget{
最终选定的基因列表;
VennDiagramWidget(此.selectedGeneList);
@凌驾
_VennState createState()=>\u VennState();
}
或者,如果您想要变量private

classvenndiagramwidget扩展StatefulWidget{
最终选定的基因列表;
VennDiagramWidget(此.\u SelectedGeneList);
List get selectedGeneLists=>此项。\u selectedGeneLists;
@凌驾
_VennState createState()=>\u VennState();
}

问题是,当您调用getter
selectedGeneList时,它又在调用自身

//调用自身⬇
获取SelectedGeneList=>this.SelectedGeneList;
您需要在widget类中声明
selectedGeneLists
变量

这应该行得通

classvenndiagramwidget扩展StatefulWidget{
最终选定的基因列表;
VennDiagramWidget(此.selectedGeneList);
@凌驾
_VennState createState()=>\u VennState();
}
或者,如果您想要变量private

classvenndiagramwidget扩展StatefulWidget{
最终选定的基因列表;
VennDiagramWidget(此.\u SelectedGeneList);
List get selectedGeneLists=>此项。\u selectedGeneLists;
@凌驾
_VennState createState()=>\u VennState();
}
.
.
.
Navigator.of(context).push(MaterialPageRoute(
                  builder: (context) => VennDiagramWidget(selectedGeneLists)));