页面 url 在颤动中没有变化,但页面内容变化良好

MaS*_*aSK 2 flutter flutter-web

嗨,我正在尝试在 flutter web 中实现一个页面,该页面从 url 获取 id 并根据该 id 显示数据。它的工作原理是页面获取数据,但 url 本身在浏览器中没有改变。

对于路线部分,我已经把这个

                      onGenerateRoute: (settings) {
                        List<String> routeSplit = settings.name.split('/');
                        if (routeSplit[1] == 'pdp' && routeSplit.length > 2) {
                          int pdpId = int.parse(routeSplit[2]);
                          return MaterialPageRoute(
                              builder: (context) =>
                                  ActivityDescriptionPage(id: pdpId));
                        }
                      },
Run Code Online (Sandbox Code Playgroud)

从此页面获取ID。并从我使用的代码发送到页面:

onTap: () => Navigator.pushNamed(context, '/pdp/' + activityId.toString())
Run Code Online (Sandbox Code Playgroud)

因此,当我从上述/products页面执行上述行时,新页面内容已加载,但浏览器中的 url/products仅保留。我在这里做错了吗?

小智 6

只需添加settings: settings,MaterialPageRoute


Ani*_*Das 6

传递MaterialPageRoute中的设置。像这样,

onGenerateRoute: (settings) {
  List<String> routeSplit = settings.name.split('/');
  if (routeSplit[1] == 'pdp' && routeSplit.length > 2) {
    int pdpId = int.parse(routeSplit[2]);
    return MaterialPageRoute(
      settings: settings,
      builder: (context) => ActivityDescriptionPage(id: pdpId)
    );
  }
},
Run Code Online (Sandbox Code Playgroud)

它也会更改页面内容和 URL。