打开 app.dart,这里会用 MaterialApp.router,创建一个带路由器的 Material 风格的应用,我们可以把它单独放在一个小部件里。
新建一个文件,放在 lib/app/router 里面,名字是 app_router.dart,文件里定义一个 Statefull 类型的小部件,名字是 AppRouter,在 State 里面,声明一个 AppModel 名字是 appModel,然后添加一个 initState 方法,在方法里面设置一下 appModel 的值,可以读取一个 Provider ,类型是 AppModel。
在文件顶部,导入需要用的 Provider 这个包。
app.dart
打开 app.dart,剪切一下 MaterialApp.router ,换成一个 AppRouter, 回到 app_router,把剪切的 MaterialApp.router 粘贴到这里。 然后导入需要的 AppTheme,再导入 AppRouterDelegate, 还有这个 AppRouteInformationParser 。
修复
保存一下文件,会在 app_navigator 里的这个 postShowPage 里面提示一个错误,意思是说在 null 值的上面用了检查 null 值的操作符。先打开调试,点击继续。
然后稍微再修改一下,去掉 appModel ,留下 resourceId,后面加上两个 ? 号,然后默认值设置成空白的字符。
修复 getPostById
点击一个内容项目,这里在 post_show_store 的 getPostById 这里提示了一个错误。这是因为我们之前定义这个方法的时候有点问题。
先把这个 responseBody 放到检查响应状态码的下面,然后这里需要声明一个 post,值可以用一下 Post.fromJson,把 responseBody 交给它。再改一下 setPost 提供的参数值,换成 post ,最后 return 的东西也换成这个 post 。
最后在模拟器再测试一下我们的应用。