我想通过推送导航将成功状态导航到另一个屏幕,但是结果进入到下一页,但不断重复就不会停止。页面之间的切换过程不断重复。如何使更改页面的过程不再重复?
body: StreamBuilder<ApiResponse<PostpaidInquiry>>(
stream: inquirPostpaid.subject,
builder: (context, snapshot) {
if (snapshot.hasData) {
switch (snapshot.data.status) {
case Status.LOADING:
_onWidgetDidBuild((){
Scaffold.of(context).showSnackBar(
SnackBar(
content: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(snapshot.data.message),
CircularProgressIndicator(),
],
),
backgroundColor: Colors.black,
),
);
});
break;
case Status.COMPLETED:
_onWidgetDidBuild(() {
AppRoutes.push(context, PlnPostpaidInquiryPage());
});
break;
case Status.ERROR:
_onWidgetDidBuild(() {
Scaffold.of(context).showSnackBar(SnackBar(
content: Text('${snapshot.data.message}'),
backgroundColor: Colors.red,
));
});
break;
}
}
return _buildForm();
},
),
我使用这种方法来帮助转到另一页:
void _onWidgetDidBuild(Function callback) {
WidgetsBinding.instance.addPostFrameCallback((_) {
callback();
});
}