下面我们可以使用刚才定义的 AuthStore 替换掉之前的 AuthModel。
先打开 app_provider.dart,查找一下文件里的 AuthModel,选中区分大小写,替换成 AuthStore,执行全部替换。再查找首字母小写的 authModel,替换成 authStore,全部替换。
选择导入需要的 AuthStore ,然后删除掉不需要的 auth_model 导入。 再打开 AuthService 修改一下这个类。AuthModel 这个类型替换成 AuthStore,名字也换成 authStore,构造方法里添加的是 this.authStore。
在构造方法里,可以声明一个 token,值判断一下 authStore.auth 不等于 null 如果是就用 authStore.auth!.token 不然就是空白字符。修改一下 ApiHttpClient 的 token 参数的值,设置成 token。
这里需要再导入需要的 AuthStore。 在文件顶部,删除掉不需要的 auth_model 导入。
批量替换
在项目里还有些地方用到了 AuthModel,我们都需要把它们替换成 AuthStore。下面可以查找一下 lib 这个目录,先找一下首字母小写的 authModel,区分小大写,替换成 authStore,选择全部替换。
再查找一下首字母大写的 AuthModel ,替换成 AuthStore,执行全部替换。 下面再查找一下 auth_model ,替换成 auth_store。执行全部替换。
打开 auth_provider,删除掉这里的其中的一个 authStoreProvider,再删除掉重复导入的 auth_store。
然后打开 lib/user/profile 下面的 user_profile.dart,找到出问题的地方,在它上面声明一个 userName,值可以判断 authStore.auth 不等于 null ,条件成立就让 userName 等于 authStore.auth!.name ,不然就是空白字符。
改一下 userProfile 里的这个 Text 小部件的值,换成 userName。 重新启动一下应用。
再找到项目里的 auth_model.dart 这个文件,把它删除掉。
测试
下面再测试一下,打开 用户,点一下用户名,退出登录,然后再点一下登录,输入用户名,再输入用户的密码,点击登录。成功以后会显示用户的名字。再重新启动一下应用,然后打开 用户,这里仍然会显示用户的名字。