Moyo: Flutter Webで画面遷移したときにURLが変わるようにする

October 9, 2019

新しいWidgetを追加した記事を書く際にそこへのリンクが貼れないのが気になっていたので、
画面遷移した時にURL(path)が変わるようにしました。

参考記事の通りNavigator.pushNamedを使うと変わるようになりました。

最初はargumentsで表示するwidgetを指定していたのですが、 ブラウザで直接見た場合argumentsがなくてエラーになるのでやめ、初期化のときに渡すようにしました。

1
2
3
4
5
6
      routes: PainterScreen.widgets.map(
        (String path, String name) => MapEntry<String, WidgetBuilder>(
          '/$path',
          (BuildContext context) => PainterScreen(path: path),
        ),
      ),

こんな感じです。

これで直接リンクを貼れるようになりました。
例えば、以下から「Fuyo Fuyo」を表示できます。

https://tnantoka.github.io/moyo/#/fuyofuyo

ソースコード

今回行ったコミットは以下です。

https://github.com/tnantoka/moyo/commit/0e0c940f4404383631541c9cd147667bea9ed7f4

参考

https://qiita.com/hiko1129/items/6ad84273590ebccc4906