android - 需要从其他有状态小部件更新布尔标志
问题描述
我正在尝试为网络错误页面创建一个单独的有状态小部件,但我被困在如何通过 networkerror.dart 更新welcome.dart 内部的布尔标志
网络错误.dart
class NetworkError extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return NetworkErrorState() ;
}
}
class NetworkErrorState extends State<NetworkError>{
@override
Widget build(BuildContext context) {
return Container(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Image.asset('assets/no_network.png'),
RaisedButton(
color: Color(0xff7F00FF),
child: Text(
'Retry',
style: TextStyle(
color: Colors.black, letterSpacing: 2.0, fontSize: 15.0),
),
onPressed: () {
NetworkUtil().netcheck(context).then((result) {
if (result) {
WelcomePage().createState().isConnected=true;
} else {
WelcomePage().createState().isConnected=false;
}
});
},
)
],
)),
);
}
}
欢迎.dart
@override
Widget build(BuildContext context) {
return Scaffold(
drawer: Drawer(
child: ListView(
children: drawerWidgets(),
),
),
key: _scaffoldKey,
body: isConnected
? isLoading
? showSpinner()
: Container(
child: Center(
child: ListView(
shrinkWrap: true,
children: <Widget>[
Center(
child: Container(
padding: const EdgeInsets.all(16.0),
child: Form(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.stretch,
children: submitWidgets(context),
),
),
),
)
],
),
),
)
: NetworkError(),
),
);
}
}
当网络数据可用时,我想将 isConnected 布尔标志从 network.dart 更新为 true。对不起,如果不能让它更简单。谢谢
解决方案
您可以使用ScopedModel或 BloC 来更改应用程序中任何地方的不同小部件的状态。
推荐阅读
- json - 实现方法链接以从 JSON 获取特定数据
- css - 突出显示 ion.rangeslider 上的范围
- node.js - 快速验证没有产生正确的错误
- java - 如何在 SWT 中显示 React UI
- react-native - 是否可以在 react native 中获取 apk 包名称和版本代码?
- php - 用数组php中的字符串列表替换字符串
- java - 如何使用springboot应用程序绕过或跳过Mockito中的CustomFilter
- ios - 更新 Xcode Swift
- angular - Angular 8 中有哪些新功能?
- c++11 - 在构造函数声明中使用类局部类型定义