如何解决如何使用 Getx 在 Flutter 中呈现具有不同转换推送/模态的页面?
我有一个页面可以以两种方式呈现,模态和推送,基于此页面的启动位置。
我使用 toNamed
来呈现这些页面,但问题是我无法在调用站点传递 fullscreenDialog
标志。我期待这样的事情:
Get.toNamed('pageName',fullscreenDialog: false);
那么,对于这种工作,我需要有两条路线和两页吗?像这样:
GetPage(
name: 'pageNameDialog',page: () => QuestionPage(),fullscreenDialog: true,binding: QuestionBinding(),),GetPage(
name: 'pageNamePush',fullscreenDialog: false,
我认为这应该是一个更好的方法,但我对 Flutter 和 getx 真的很陌生,不知道我应该搜索什么。有没有人对此有解决方案?否则,我可能不得不将我的路线和页面翻倍,这是非常多余的。
解决方法
创建一个这样的方法
class Go {
static Future<dynamic> to(dynamic page,{dynamic arguments}) async {
Get.to(
page,arguments: arguments,transition: Transition.fadeIn,// choose your page transition accordingly
duration: const Duration(milliseconds: 300),);
}
}
然后在您的视图或控制器中
Go.to(
() => OtpView(
otp: loginResponseData.otp,referralCode: referralCode.value,phoneNo: int.parse(userMobile.value),),);
,
您可以将您的标志作为参数传递,如下所示:
Get.toNamed('pageName',arguments: true);
在你要去的页面上,你可以点击:
Get.arguments;
这将在 pageName 上返回 true。
现在 arguments 参数类型是动态的,所以你可以传递任何一个,如果你想要多个,你也可以传递 List 或 Map。
希望这是您想要实现的目标。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。