gpt4 book ai didi

firebase - FLUTTER:如何在流构建器中使用导航器?

转载 作者:行者123 更新时间:2023-12-04 12:19:42 25 4
gpt4 key购买 nike

我正在尝试在流构建器中导航,但出现此错误:“在构建过程中调用了 setState() 或 markNeedsBuild()。”。如果我在 onpressed 按钮内调用导航它可以工作,但不仅仅是在条件内使用它。我被困住了。有一些代码可以向您展示。

Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder(
stream:
Firestore.instance.collection('rooms').document(pinid).snapshots(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasData) {
if ((snapshot.data['Votes'][0] + snapshot.data['Votes'][1]) >=
snapshot.data['joueurs']) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Results(),
));
}
}
return Center(
child: Text('VOUS AVEZ VOTE'),
);
},
),
);
}

最佳答案

那是因为 Flutter 在您尝试导航到另一个屏幕时会触发框架构建,因此这是不可能的。

您可以安排后帧回调,以便在 Flutter 完成该小部件的树重建后立即导航。

import 'package:flutter/foundation.dart';

WidgetsBinding.instance.addPostFrameCallback(
(_) => Navigator.push(context,
MaterialPageRoute(
builder: (context) => Results(),
),
),
);

关于firebase - FLUTTER:如何在流构建器中使用导航器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59739062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com