gpt4 book ai didi

flutter - 在初始化期间读取静态变量=> Flutter Navigator.push

转载 作者:行者123 更新时间:2023-12-03 04:20:31 24 4
gpt4 key购买 nike

我有一个有状态的小部件列表,可用于从页面导航。但是当我尝试在Navigator.push()中推送这些List元素时,它说“在初始化期间读取静态变量”。
这是 list :

List<ActionScreen> fullBodyNavigation = [
ActionScreen(title: 'demo data', number: 20, gifDirectory: "assets/gifs/demodata.gif", currentList: fullBodyNavigation,
frameMin: 0, frameMax: 17, milisecondAnimation: 800, milisecondTimer: 800, sessionNumber: 1,),
ActionScreen(title: 'demodata', number: 15, gifDirectory: "assets/gifs/demodata.gif", currentList: fullBodyNavigation,
frameMin: 0, frameMax: 30, milisecondAnimation: 1200, milisecondTimer: 1200, sessionNumber: 2,),
ActionScreen(title: 'demodata', number: 15, gifDirectory: "assets/gifs/demodata.gif", currentList: fullBodyNavigation,
frameMin: 0, frameMax: 2, milisecondAnimation: 2000, milisecondTimer: 2000, sessionNumber: 3,),
.............
]
这是push方法:
onPress: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => fullBodyNavigation[0],),);
},
我在stackoverflow中发现了一个解决方案,该解决方案说我必须使用“fullBodyNavigation.data [0]”之类的“数据”。但ide说“未定义getter数据”。有人可以帮忙吗?
这是该解决方案的链接: Reading static variable during its initialization | Flutter

最佳答案

问题在于您创建导航页面列表的方式:

    List<ActionScreen> fullBodyNavigation = [
ActionScreen(title: 'demo data',
number: 20,
gifDirectory: "assets/gifs/demodata.gif",
currentList: fullBodyNavigation,
frameMin: 0,
frameMax: 17,
milisecondAnimation: 800,
milisecondTimer: 800,
sessionNumber: 1,
),
.............
]
为什么要将 currentList: fullBodyNavigation传递给 ActionScreen。因此,基本上,您正在尝试访问列表本身内的列表。鸡肉和鸡蛋问题。这是什么编译器警告您该错误。
要解决此问题,请不要将 currentList: fullBodyNavigation传递给 ActionScreen。而是将 fullBodyNavigation设置为静态字段,并在 ActionScreen中使用类名进行访问。那应该做你的事情,也使编译器高兴

关于flutter - 在初始化期间读取静态变量=> Flutter Navigator.push,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62873332/

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