簡體   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