gpt4 book ai didi

flutter - Flutter:在无状态小部件中,我收到 “The instance member ' xy',无法在初始化程序中对其进行访问。”在数组xy上使用长度时

转载 作者:行者123 更新时间:2023-12-03 04:09:48 26 4
gpt4 key购买 nike

现在这是我代码中遇到此问题的第二个位置(第一个仍在等待中,因为我认为这可能是由其他原因引起的)
在无状态的子类中,我基于传递给该类的参数来创建最终形式。引发。实例成员“参数”无法在初始化程序中访问。

class createParameterButtons extends StatelessWidget {
final List<Parameter> parameters;
final String unnknown;
createParameterButtons({this.parameters, this.unnknown});
final noOfButtons = parameters.length;
final loopEnd = (noOfButtons / 7).truncate() + (noOfButtons % 7 < 5 ? 1 : 2);
@override
Widget build(BuildContext context) {
return Column(children: <Widget>[
Text("a"),
],
),
} }
猜想我发现我无法在无状态小部件中使用变量(尽管我可以在for循环中使用变量)。但是,为什么基于参数的最终结果不起作用?这是一般设计还是我做任何愚蠢的事情?
我知道,我可以将数组长度作为另一个参数发送,作为一种解决方法。但是我想了解这个问题。

最佳答案

它与调用构造函数时发生的事情的顺序有关。参数和noOfButtons都是字段,并且不一定要在另一个之前分配一个。如果要使用其他最终字段中的字段,则必须在初始化程序列表中进行操作。 https://dart.dev/guides/language/language-tour#initializer-list
因此,这应该工作:

class createParameterButtons extends StatelessWidget {
final List<Parameter> parameters;
final String unnknown;
createParameterButtons({this.parameters, this.unnknown}) : noOfButtons = parameters.length, loopEnd = loopEnd = (noOfButtons / 7).truncate() + (noOfButtons % 7 < 5 ? 1 : 2);
final noOfButtons;
final loopEnd;
@override
Widget build(BuildContext context) {
return Column(children: <Widget>[
Text("a"),
],
),
} }

关于flutter - Flutter:在无状态小部件中,我收到 “The instance member ' xy',无法在初始化程序中对其进行访问。”在数组xy上使用长度时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63612646/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com