页面url在flutter中没有变化,但是页面内容变化很好
Page url not changing in flutter, but the page content changes fine
您好,我正在尝试在 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));
}
},
页面由此获取 id。并从我使用的代码发送到页面:
onTap: () => Navigator.pushNamed(context, '/pdp/' + activityId.toString())
因此,当我从 /products
页面执行上述行时,新页面内容已加载,但浏览器中的 url 仅保留 /products
。我是不是做错了什么?
我必须将设置对象传递给 Material 页面路由。
我在这里找到了它,那里也有一个例子。
https://github.com/flutter/flutter/issues/53361#issuecomment-607521191
只需将 settings: settings,
添加到 MaterialPageRoute
通过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)
);
}
},
它会改变页面内容和URL。
您好,我正在尝试在 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));
}
},
页面由此获取 id。并从我使用的代码发送到页面:
onTap: () => Navigator.pushNamed(context, '/pdp/' + activityId.toString())
因此,当我从 /products
页面执行上述行时,新页面内容已加载,但浏览器中的 url 仅保留 /products
。我是不是做错了什么?
我必须将设置对象传递给 Material 页面路由。 我在这里找到了它,那里也有一个例子。 https://github.com/flutter/flutter/issues/53361#issuecomment-607521191
只需将 settings: settings,
添加到 MaterialPageRoute
通过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)
);
}
},
它会改变页面内容和URL。