Flutter 颤振:此错误出现在使用不包含脚手架的上下文调用Scaffold.of()时。当我试着展示一个小吃条的时候
当连接状态更改时,我尝试使用snackBar,当我使用打印时,连接工作正常。但当我尝试使用脚手架时。of(context)。showSnackBarFlutter 颤振:此错误出现在使用不包含脚手架的上下文调用Scaffold.of()时。当我试着展示一个小吃条的时候,flutter,dart,widget,provider,scaffold,Flutter,Dart,Widget,Provider,Scaffold,当连接状态更改时,我尝试使用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(),
),