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

时间:2020-08-14 05:09:39

标签: function flutter build

情况:

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

在其他两个屏幕上还有另外两个有状态小部件,而在第一个屏幕中,我已调用此功能。

问题:

帮助我了解为什么会出现上述错误以及如何解决该错误?

1 个答案:

答案 0 :(得分:1)

让上下文将其传递给您的函数以使其起作用:

containerAdder(initialI, BuildContext context) { 
    // Your all of the codes
}

现在,像这样调用containerAdder:

objectName.containerAdder(intialI, context);