问题描述
情况:
我在简单类中有一个函数(不是有状态的或无状态的),但是在有状态窗口小部件的第一个屏幕中调用了该函数,在我曾经使用过Navigator.push
的函数中转到了第二个屏幕有状态的小部件。
代码:
功能码
containerAdder(initialI) {
List<Widget> listViewContainer = List();
for (var j = 0; j < mainListAllPlantDetailsList1.length; j++) {
if (tabsText[initialI] == mainListAllPlantDetailsList1[j].ca) {
listViewContainer.add(
FlatButton(
onpressed: () {
Navigator.push(
context,**(MENTIONED ERROR GIVES OVERHERE )**
MaterialPageRoute(builder: (context) => ParticularPlant2()),);
},child: Container(
height: 320,width: 200,child: Stack(
children: [
Positioned(
bottom: 10,child: Container(
padding: EdgeInsets.fromLTRB(25,50,20,20),height: 150,width: 180,decoration: Boxdecoration(
color: Colors.lightGreen,borderRadius: BorderRadiusDirectional.only(
bottomEnd: Radius.circular(70),topEnd: Radius.circular(70),topStart: Radius.circular(70),),child: Column(
crossAxisAlignment: CrossAxisAlignment.start,children: [
Text(mainListAllPlantDetailsList1[j].ca),Text(mainListAllPlantDetailsList1[j].pN),Text(mainListAllPlantDetailsList1[j].pr.toString()),],)
],)),);
} else {
continue;
}
}
return listViewContainer;
}
在其他两个屏幕上还有另外两个有状态小部件,而在第一个屏幕中,我已调用此功能。
问题:
解决方法
让上下文将其传递给您的函数以使其起作用:
containerAdder(initialI,BuildContext context) {
// Your all of the codes
}
现在,像这样调用containerAdder:
objectName.containerAdder(intialI,context);