我有这个流程
screen1->screen2(A)->screen2(B)
发生的事情是从屏幕1转到详细信息屏幕2(具有数据集A),然后在该屏幕内有一个按钮,该按钮将再次调用具有另一组数据(数据集B)的屏幕2
所以当我想返回时,这里的数据仍然显示数据B
screen2(B)->screen2(B)->screen1
我期望的是
screen2(B)->screen2(A)->screen1
这与BloC BehaviorSubject模式有关吗?我尝试PublishSubject,但结果也一样。
答案 0 :(得分:0)
定义一个初始值为A
的全局变量,然后在Navigator.push()
的{{1}}方法的B
方法上将其值更改为onPop()
将值改回screen2
。
答案 1 :(得分:0)
我会稍微更改一下导航,以便您使用
Navigator.of(context).pushNamed('screen2', arguments: {'categoryId': categoryId});
您构建的screen2小部件会从参数中获取指定的categoryId
Map args = ModalRoute.of(context).settings.arguments;
获取其详细信息并显示它或执行任何操作。然后,当您按设备后退按钮时,它必须按预期工作。