Dart 导航器弹出窗口上引发错误,直到:"_debugLocked';:事实并非如此;
当通过单击showBottomSheet弹出一个屏幕导航到另一个屏幕时,以下代码会引发此错误。我不明白为什么会这样Dart 导航器弹出窗口上引发错误,直到:"_debugLocked';:事实并非如此;,dart,flutter,navigator,Dart,Flutter,Navigator,当通过单击showBottomSheet弹出一个屏幕导航到另一个屏幕时,以下代码会引发此错误。我不明白为什么会这样 class\u checkoutstate扩展状态{ 最终的GlobalKey _GlobalKey=GlobalKey(); final DateTime deliveryTime=DateTime.now().add(持续时间(分钟:30)); 最终双倍交货价格=5.00; @凌驾 小部件构建(构建上下文){ 订阅服务订阅服务= (上下文)的提供者; CheckoutServi
class\u checkoutstate扩展状态{
最终的GlobalKey _GlobalKey=GlobalKey();
final DateTime deliveryTime=DateTime.now().add(持续时间(分钟:30));
最终双倍交货价格=5.00;
@凌驾
小部件构建(构建上下文){
订阅服务订阅服务=
(上下文)的提供者;
CheckoutService CheckoutService=Provider.of(上下文);
返回容器(
身高:48.0,
宽度:MediaQuery.of(context).size.width*0.75,
孩子:StreamBuilder(
流:subscriptionService.subscription$,
生成器:(\ux,异步快照){
如果(!snapshot.hasData){
返回文本(“签出”);
}
最终订阅=snapshot.data;
最终列表订单=subscription.orders;
最终套餐=subscription.Package;
num折扣=\u获得折扣(套餐);
num price=_totalPriceOf(订单、折扣);
返回流生成器(
流:checkoutService.loading$,
initialData:false,
生成器:(上下文,快照){
bool加载=snapshot.data;
返回ExtendedFloatingActionButton(
加载:加载,
禁用:加载,
操作:()异步{
checkoutService.setLoadingStatus(true);
最终认购=
等待提供程序(上下文)
.认购$
.首先;
试一试{
等待CloudFunctions.instance.call(
functionName:'createSubscription',
参数:subscription.toJSON);
最终底片=
_globalKey.currentState.showBottomSheet(
(上下文){
返回容器(
宽度:MediaQuery.of(context).size.width,
装饰:盒子装饰(
梯度:线性梯度(
开始:Alignment.topCenter,
结束:对齐。底部中心,
颜色:[
主题。背景。脚手架背景颜色,
主题。背景。原色,
主题。背景。原色,
],
停止:[-1.0,0.5,1.0],
),
),
子:列(
儿童:[
扩大(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
填充物(
衬垫:
仅限常数边集(底部:16.0),
子:文本(
“谢谢您的订单”,
textAlign:textAlign.center,
风格:主题(上下文)
.文本主题
.1,
),
),
SvgPicture.asset(
“assets/images/thumb.svg”,
身高:120.0,
宽度:100.0,
)
//圆形(
//半径:40.0,
//背景颜色:颜色。透明,
//子:图标(
//图标。检查,
//颜色:主题(上下文)
//.文本主题
//.display1
//.颜色,
//尺寸:80.0,
// ),
// ),
],
),
),
容器(
宽度:
MediaQuery.of(context).size.width*0.9,
身高:72.0,
填充:仅限边缘设置(底部:24),
子级:ExtendedFloatingActionButton(
文本:“订单详情”,
行动:(){
Navigator.of(context.pop();
},
),
),
],
),
);
},
);
底部板。关闭。然后((v){
导航器(上下文)
.popintil((r)=>r.settings.isInitialRoute);
});
}捕获(e){
印刷品(e);
最后小吃=
Navigator.of(context).pushNamedAndRemoveUntil('/screen4', (Route<dynamic> route) => false);
@override
Widget build(BuildContext context) {
var viewmodel = Provider.of<ViewModel>(context);
Navigator.of(context).push(MaterialPageRoute(builder:
(context)=>CreateItemPage(viewmodel.catalogData))); // this is way i was getting error.
return Scaffold();
}
class _LoadingState extends State<Loading> {
void getTime() async {
// DO SOME STUFF HERE
Navigator.pushNamed(context, '/home');
}
@override
void initState() {
super.initState();
getTime();
}
class _HomeState extends State<Home> {
@override
void initState() {
super.initState();
Navigator.pushNamed(context, '/loading');
}
class HomePage extends StatefulWidget {
@override
HomePageState createState() => HomePageState();
} //no changes here
class HomePageState extends State<HomePage> with AfterLayoutMixin<HomePage> {
//the with AfterLayoutMixin<pageName> is the only thing you need to change.
@override
Future<void> afterFirstLayout(BuildContext context) {
//your code here safetly
}
navigationService.popUntil((_) => true);
navigationService.navigateTo(
'authentication',
);
WidgetsBinding.instance.addPostFrameCallback((_) {
Navigator.pushReplacement(context, MaterialPageRoute(builder: (_) => MyPage()));
});
Future.delayed(const Duration(milliseconds: 500), () {
setState(() {
Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(builder: (context) => SetCategory()),
(route) => false);
});
});