Function 参数类型';上下文';can';不能分配给参数类型';BuildContext';。参数(类型不可分配) 情况:

Function 参数类型';上下文';can';不能分配给参数类型';BuildContext';。参数(类型不可分配) 情况:,function,flutter,build,Function,Flutter,Build,我在简单类中有一个函数(不是有状态的或无状态的),但该函数在有状态小部件的第一个屏幕中调用,在我使用的Navigator函数中。按转到有状态小部件的第二个屏幕 代码: 功能代码 containerAdder(initialI) { List<Widget> listViewContainer = List(); for (var j = 0; j < mainListAllPlantDetailsList1.length; j++) { if (t

我在简单类中有一个函数(不是有状态的或无状态的),但该函数在有状态小部件的第一个屏幕中调用,在我使用的
Navigator函数中。按
转到有状态小部件的第二个屏幕

代码: 功能代码

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(缩写i){
List listViewContainer=List();
对于(var j=0;jSpecialPlant2()),
);
},
子:容器(
身高:320,
宽度:200,
子:堆栈(
儿童:[
定位(
底部:10,
子:容器(
填充:来自LTRB(25,50,20,20)的边缘设置,
身高:150,
宽度:180,
装饰:盒子装饰(
颜色:颜色。浅绿色,
边界半径:仅限边界半径方向(
底端:半径。圆形(70),
顶端:半径。圆形(70),
上起点:半径。圆形(70),
),
),
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
Text(mainListAllPlantDetailsList1[j].ca),
Text(mainListAllPlantDetailsList1[j].pN),
Text(mainListAllPlantDetailsList1[j].pr.toString()),
],
),
),
)
],
)),
),
);
}否则{
继续;
}
}
返回listViewContainer;
}
在另外两个屏幕上还有另外两个有状态的小部件,而在第一个屏幕中我调用了这个函数

问题:
请帮助我了解出现上述错误的原因以及如何修复它?

让我们将上下文传递给您的函数以使其正常工作:

containerAdder(initialI, BuildContext context) { 
    // Your all of the codes
}
现在,调用containerAdder,如下所示:

objectName.containerAdder(intialI, context);

如何调用函数??objectnameofclass.functionname();在Stative Widget的另一个屏幕中,为什么不在函数中传递上下文作为参数?你试过了吗?是的,没用阿曼,我已经发布了答案,请检查一下…它有效了,谢谢,为什么会发生这种错误?因为正如你所说,这是正常的课程。。。它对上下文一无所知。你可以说是纯粹的飞镖。当我们将有状态小部件的上下文作为参数传递时,它现在将
context
作为类
BuildContext
的对象。它可以像预期的那样前进。。。