flutter - 如何在flutter中将路由更改更新为非root Navigator的浏览器URL?
问题描述
当我在我的颤振应用程序中使用我的嵌套导航器时,我正在尝试更新 Web URL。
/
具有导航到该路线的 FlatButton的默认/sub
路线。然后_generateSubRoute
- >/second
这是我的例子:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
routes: {
// When navigating to the "/" route, build the FirstScreen widget
'/': (context) => Scaffold(
body: FlatButton(
onPressed: () {
Navigator.of(context).pushNamed('/sub');
},
child: Text(
"Go to sub",
),
),
),
// When navigating to the "/second" route, build the SecondScreen widget.
'/sub': (context) =>
Scaffold(body: Column(children: [Text('/sub'), Flexible(
child: Navigator(
onGenerateRoute: _generateSubRoute ))]))
});
}
Route _generateSubRoute(RouteSettings settings) {
if (settings.name == '/second') {
return MaterialPageRoute(
settings: settings,
builder: (BuildContext context) => Text('Second screen')
);
}
return MaterialPageRoute(
settings: settings,
builder: (BuildContext context) => Column(children: <Widget>[
Text('/subroot/'),
FlatButton(
onPressed: () {
Navigator.of(context).pushNamed('/second');
},
child: Text(
"Go to second",
))])
);
}
}
此代码中的 Web url 无法正常工作。知道如何解决这个问题吗?
解决方案
import 'dart:html' as html;
html.window.history.pushState(null, "Home", "/");
推荐阅读
- javafx - JavaFX 组合框在选择选项后设置 PromptText
- google-analytics - 如何将 vars-data-myvar 放入谷歌分析变量
- python - 用python编写快速代码
- bash - Bash IFS 忽略部分字符串
- c# - 如何在 Razor 页面中正确路由 DropDownList 选择?
- c# - 如何在 if 语句中使用循环中生成的 rnd
- c# - 如何将 tihs sql 查询转换为实体框架 lambda 表达式?
- php - 如何使用 PHP 脚本比较和同步两个数据库模式
- swift - 如何在 SwiftUI 中继承 @State 属性包装器
- wordpress - 如何排除对某些页面的爬取