lmt*_*tvt 3 future firebase flutter google-cloud-firestore stream-builder
我正在尝试在流构建器中导航,但出现此错误:“在构建过程中调用了 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'),
);
},
),
);
}
Run Code Online (Sandbox Code Playgroud)
那是因为 Flutter 在您尝试导航到另一个屏幕时会触发框架构建,因此这是不可能的。
您可以安排后帧回调,以便在 Flutter 完成该小部件的树重建后立即导航。
import 'package:flutter/foundation.dart';
WidgetsBinding.instance.addPostFrameCallback(
(_) => Navigator.push(context,
MaterialPageRoute(
builder: (context) => Results(),
),
),
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1702 次 |
| 最近记录: |