如果把应用所有要提供的 Provider 全都放在一个地方,会很乱,所以我们可以把它们单独放在各自的文件里,比如我们可以把内容相关的 Provider 放在一个文件里定义。
post_provider.dart
最后这个 Provider 提供的是一个 PostShowModel ,先剪切一下这个 Provider 。然后在项目下面新建一个文件,放在 lib/post 的下面,名字是 post_provider.dart。
在里面声明一个 postShowProvider,对应的值就是刚才剪切的这个 Provider。选中红色波浪线,command + . 选择导入 provider,再按一下,这次导入的是 PostShowModel。
然后在下面再声明一个 postProviders,它的值是一个列表,里面添加一个 postShowProvider。
回到 app.dart,在这里提供的 Provider 里面,用 spread 操作符,展开 postProviders ,把它里面的 Provider 放到这里。
post_index.dart
打开 post_index.dart,在这里也用了一个 Provider,先复制一下这个 Provider, 再选中这个 ChangeNotifierProvider,command + . 选择移除这个小部件,去除以后,再把上面不需要的导入删除掉。 保存一下文件,可能会出现一个问题,先不用管它。
post_provider.dart
打开 post_provider.dart,在这个文件里再定义一个新的 Provider,名字叫 postIndexProvider,对应的值是刚才剪切的代码,选中这个 PostIndexModel,command + . 选择导入 post_index_model.dart。 在 postProviders 里面,再添加一个 postIndexProvider。
保存一下文件,打开编辑器的调试,按一下继续,然后再重新启动一下 。