我试着像这样编码
showModalBottomSheet(
context: context, // I got error here (Undefined name 'context'.dart(undefined_identifier))
builder: (context){
return Container(
);
);我在context: context上有错误,错误消息是
未定义的名称‘context’. name (Undefined_identifier)
发布于 2019-04-11 08:18:52
这就是如何在一个showModalBottomSheet中调用StatelessWidget
class TestStatelessWidget extends StatelessWidget{
@override
Widget build(BuildContext context) {
return RaisedButton(
child: Text('Press me'),
onPressed: ()=>showPress(context),
);
}
void showPress(BuildContext context){
showModalBottomSheet(context:context, builder: (context){
return Text('hello');
});
}
}发布于 2019-04-11 09:18:07
您会得到这个错误,因为您无法访问context类中的任何地方。如果您使用这个外部的context方法,则只需要从build()传递build(),否则在build()方法中使用它。
解决方案1. (在build()内部使用)
@override
Widget build(BuildContext context) {
return RaisedButton(
child: Text("Show sheet"),
onPressed: () {
showModalBottomSheet(context: context, builder: (context) => YourWidget());
},
);
}解决方案2. (使用外部build())
@override
Widget build(BuildContext context) {
return RaisedButton(
child: Text("Show sheet"),
onPressed: () => _showSheet(context),
);
}
void _showSheet(BuildContext context) {
showModalBottomSheet(context: context, builder: (context) => YourWidget());
}发布于 2019-04-11 08:14:57
您没有正确关闭showModalBottomSheet的builder。缺少一个}。
这将是正确的用法:
showModalBottomSheet(
context: context,
builder: (builder){
return Container();
}
);https://stackoverflow.com/questions/55627656
复制相似问题