群组颤动成功后,如何导航到另一个屏幕?

时间:2020-05-03 06:37:14

标签: flutter dart bloc

我想通过推送导航将成功状态导航到另一个屏幕,但是结果进入到下一页,但不断重复就不会停止。页面之间的切换过程不断重复。如何使更改页面的过程不再重复?

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();
    });
  }

0 个答案:

没有答案
相关问题