无法将参数类型“上下文”分配给参数类型“ BuildContext”dartargument_type_not_assignable

问题描述

情况:

我在简单类中有一个函数(不是有状态的或无状态的),但是在有状态窗口小部件的第一个屏幕中调用了该函数,在我曾经使用过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);