繁体   English   中英

Flutter :此错误出现在使用不包含 Scaffold 的上下文调用的 Scaffold.of() 。 当我尝试展示小吃店时

[英]Flutter : this error appear Scaffold.of() called with a context that does not contain a Scaffold. when i try to show a snackbar

  • 当连接状态发生变化时,我尝试使用小吃店,当我使用打印时,连接工作正常。 但是当我尝试使用 Scaffold.of(context).showSnackBar ....,

  • 我收到了一个错误 ['Scaffold.of() 在不包含 Scaffold 的上下文中调用。

从传递给 Scaffold.of() 的上下文开始,找不到任何 Scaffold 祖先。 这通常发生在所提供的上下文来自与其构建函数实际创建正在寻找的 Scaffold 小部件相同的 StatefulWidget 时。

']

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


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;
  }
}
  • 在 main.dart 中,我使用包装类作为 HomePage 并将真正的 homeScreen 放入其中:
 home: ConnectivityWrapper(
             CategoriesScreen(),
            
            ),

好吧,您似乎还没有在任何父小部件中构建 Scaffold。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM