当连接状态更改时,我尝试使用SnackBar,并且在使用打印时连接正常。但是当我尝试使用Scaffold.of(context).showSnackBar ....,
在没有包含脚手架的上下文中调用['Scaffold.of()时出现错误。
从传递给Scaffold.of()的上下文开始,找不到Scaffold的祖先。通常,当所提供的上下文来自与其构建函数实际创建要查找的Scaffold小部件的状态相同的StatefulWidget时。
']
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(),
),
答案 0 :(得分:0)
好吧,看来您还没有在任何父窗口小部件中构建一个脚手架。
要么这样做,要么看看Flushbar软件包。