【问题标题】:Flutter Getx: How to create single page with url?Flutter Getx:如何使用 url 创建单页?
【发布时间】:2022-08-05 11:18:56
【问题描述】:

我正在尝试使用 Getx 创建应用程序单页。 当用户更改 URL 时,页面会更改一些小部件,但 Getx 仍然移动到同一页面(从翻页时的移动观察)。

现在,我正在使用:

 getPages: [
        GetPage(
            name: \"Page 1\",
            page: () {
              globals.page= \"Page 1\";
              return Home();
            }),
        GetPage(
            name: \"Page 2\",
            page: () {
              globals.page= \"Page 2\";
              return Home();
            }),
    ]

如何解决? 我看起来像:

getPages: [
       GetPage(
           name: [\"Page 1\",\"Page 2\"],
           page: () => Home(),
           refreshPageWidget: false,     //Don\'t return widget from page:
           onSamePage:  (String url) {     //Do when routing to original page.
             if(url == \"Page 1\"){
                globals.page= \"Page 1\";
             }else{
                globals.page= \"Page 2\";
             }
           }),
         ]

Getx(任何包)可以做到这一点吗?

    标签: flutter-layout flutter-getx


    【解决方案1】:

    这是可能的,但并不完全。 您可以使用更改 URL

    window.history.pushState(null, 'url name', URL);
    changePageWidget();
    setState((){});
    

    但这会使这个应用程序只有一条路线。 所以不能通过浏览器中的箭头导航按钮来后退或前进(虽然目前这个flutter web还不够好),也不能用Navigation来管理这个页面。您必须创建函数来管理此页面。

    这种方法的最大问题是你不能使用stateFullWidget 因为 stateFullWidget 将在页面小部件更改时自行重置。所以,你需要使用状态管理。

    综上所述,你可以按照上面提到的那样做,但不能使用 web 浏览器中的箭头导航按钮,也不能使用 Flutter 提供的一些易于使用的功能。

    【讨论】:

      猜你喜欢
      • 2021-03-04
      • 2021-03-06
      • 2022-12-14
      • 2021-05-03
      • 2021-04-06
      • 2022-08-04
      • 2021-11-11
      • 2021-11-09
      • 2021-02-09
      相关资源
      最近更新 更多