Flutter 颤振:此错误出现在使用不包含脚手架的上下文调用Scaffold.of()时。当我试着展示一个小吃条的时候

Flutter 颤振:此错误出现在使用不包含脚手架的上下文调用Scaffold.of()时。当我试着展示一个小吃条的时候,flutter,dart,widget,provider,scaffold,Flutter,Dart,Widget,Provider,Scaffold,当连接状态更改时,我尝试使用snackBar,当我使用打印时,连接工作正常。但当我尝试使用脚手架时。of(context)。showSnackBar 使用不包含脚手架的上下文调用['Scaffold.of()时出错 从传递给Scaffold.of()的上下文开始,找不到任何Scaffold祖先。当提供的上下文来自与构建函数实际创建要查找的Scaffold小部件相同的StatefulWidget时,通常会发生这种情况 “] 我创建了一个包装类,其中包含一个小部件作为构造函数 嗯,看起来您

当连接状态更改时,我尝试使用snackBar,当我使用打印时,连接工作正常。但当我尝试使用脚手架时。of(context)。showSnackBar

  • 使用不包含脚手架的上下文调用['Scaffold.of()时出错

  • 从传递给Scaffold.of()的上下文开始,找不到任何Scaffold祖先。当提供的上下文来自与构建函数实际创建要查找的Scaffold小部件相同的StatefulWidget时,通常会发生这种情况

    “]

    • 我创建了一个包装类,其中包含一个小部件作为构造函数

    嗯,看起来您还没有在任何父窗口小部件中构建脚手架

    要么这样做,要么看看Flushbar包

    
    
    import 'package:Zabatnee/activities_app/enum/connectivity_status.dart';
    import 'package:flutter/material.dart';
    import 'package:provider/provider.dart';
    
    
    class ConnectivityWrapper extends StatefulWidget {
      final Widget childWidget;
      ConnectivityWrapper(this.childWidget);
    
      @override
      _ConnectivityWrapperState createState() => _ConnectivityWrapperState();
    }
    
    class _ConnectivityWrapperState extends State<ConnectivityWrapper> {
    
     Widget _showOfflineSnakbar(){
    Scaffold.of(context).showSnackBar(
                    SnackBar(
                      content: 
                      
                      Text(
                        'No internet connection',
                      ),
                      duration: Duration(seconds: 3),
                    ),
                  );
    
                
               
      }
    
      @override
      void didChangeDependencies() {
     var connectionState = Provider.of<ConnectivityStatus>(context);
    
        if(connectionState == ConnectivityStatus.Offline){
              print('the internet is offline');
               _showOfflineSnakbar();
    
         
        }if(connectionState == ConnectivityStatus.Wifi || connectionState == ConnectivityStatus.Cellular){
        print('the internet is online');
               _showOfflineSnakbar();
    
        }
        super.didChangeDependencies();
      }
      @override
      Widget build(BuildContext context) {
        return widget.childWidget;
      }
    }
    
     home: ConnectivityWrapper(
                 CategoriesScreen(),
                
                ),