我在简单类中有一个函数(不是有状态的或无状态的),但是在有状态窗口小部件的第一个屏幕中调用了该函数,在我曾经使用过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;
}
在其他两个屏幕上还有另外两个有状态小部件,而在第一个屏幕中,我已调用此功能。
帮助我了解为什么会出现上述错误以及如何解决该错误?
答案 0 :(得分:1)
让上下文将其传递给您的函数以使其起作用:
containerAdder(initialI, BuildContext context) {
// Your all of the codes
}
现在,像这样调用containerAdder:
objectName.containerAdder(intialI, context);