【flutter】a跳转b页面,使用a的回调方法

最近有个需求,a页面是联系人目录页面,b页面是添加联系人页面,由a打开b,为了降低耦合性,b只负责拿到联系人的信息,由a判断是否符合规范,可以添加。这就要求要用回调的方法来解决。用了2种解决方法。
1、也是网上流传的,写一个接口,用manager单例实现,再在a中注册,d中调用。**就相当于有一个全局的方法,在a中实现,d中调用。**会导致内存泄漏问题,还没有了解过怎么解决。
https://blog.csdn.net/k741451/article/details/51615783
由于我的需求有特殊性,是直接a->b的,没有跨页面调用。所以可以用更简单的方式来处理。

2、我这里是flutter项目,用dart来实现的。

2.1、在d中定义一个回调

typedef OnCheckCallback = int Function(String phone);

2.2、实例化出来

  final OnCheckCallback onCheck;

在d中可以直接通过onCheck来调用。如果需要返回就可以

Navigator.pop(context, item);

2.3、在a中

 Navigator.push(context, MaterialPageRoute(builder: (_){
              return AddEmergencyContactWidget(onCheck: (phone){
              	//业务代码,处理这个传过来的参数phone
              },);
            })).then((e) {
              if(e is EmergencyContactInfo){	//处理返回过来的item,这个info是返回的item的类型
					//业务代码
              }
            });
发布了57 篇原创文章 · 获赞 3 · 访问量 6179

猜你喜欢

转载自blog.csdn.net/qq_39830579/article/details/104919531