Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何在无状态小部件中使用showModalBottomSheet?_Dart_Flutter - Fatal编程技术网

Dart 如何在无状态小部件中使用showModalBottomSheet?

Dart 如何在无状态小部件中使用showModalBottomSheet?,dart,flutter,Dart,Flutter,我试着这样编码 showModalBottomSheet( context: context, // I got error here (Undefined name 'context'.dart(undefined_identifier)) builder: (context){ return Container( ); ); 我在上下文中出错:上下文,错误消息为 未定义的名称“上下文”。未定义的\u标识符 您没有正确关闭showModalBottomSheet的

我试着这样编码

showModalBottomSheet(
   context: context, // I got error here (Undefined name 'context'.dart(undefined_identifier))
   builder: (context){

   return Container(

   );
);
我在上下文中出错:上下文,错误消息为

未定义的名称“上下文”。未定义的\u标识符

您没有正确关闭showModalBottomSheet的生成器。 少了一个}

这是正确的用法:

showModalBottomSheet(
    context: context,
    builder: (builder){
      return Container();
    }
);
您没有正确关闭showModalBottomSheet的生成器。 少了一个}

这是正确的用法:

showModalBottomSheet(
    context: context,
    builder: (builder){
      return Container();
    }
);
这就是如何在无状态小部件中调用showModalBottomSheet

这就是如何在无状态小部件中调用showModalBottomSheet


您之所以会出现此错误,是因为您无法访问无状态小部件类中的所有上下文。如果您正在使用这个外部构建方法,那么您所需要做的就是从构建中传递上下文,否则就在构建方法中使用它

解决方案1。使用内部构建

解决方案2。使用外部构建


您之所以会出现此错误,是因为您无法访问无状态小部件类中的所有上下文。如果您正在使用这个外部构建方法,那么您所需要做的就是从构建中传递上下文,否则就在构建方法中使用它

解决方案1。使用内部构建

解决方案2。使用外部构建

您是否在构建方法中使用它。如果可能,发布完整的小部件类代码,您是否在构建方法中使用它。如果可能,发布完整的小部件类代码
@override
Widget build(BuildContext context) {
  return RaisedButton(
    child: Text("Show sheet"),
    onPressed: () {
      showModalBottomSheet(context: context, builder: (context) => YourWidget());
    },
  );
}
@override
Widget build(BuildContext context) {
  return RaisedButton(
    child: Text("Show sheet"),
    onPressed: () => _showSheet(context),
  );
}

void _showSheet(BuildContext context) {
  showModalBottomSheet(context: context, builder: (context) => YourWidget());
}