用户在注册表单上成功注册了用户或者注册发生了异常情况,可以在界面上用一个 SnackBar 显示一些提示信息。先打开 SignupService,改造一下,在 signup 方法里用的 switch,去掉响应状态码是 201 这种情况,然后添加一种默认的情况,默认让它 return 一个 UserModel 模型的数据。
如果响应的是异常数据,可以用一个 throw ,把异常信息交给它,这里应该就是 exceptionResponse 里的 message 属性的值。
现在这个 signup 方法返回的是个 Future,数据的类型是 UserModel。
再回到 SignupForm ,找到它里面的 _submitForm 方法, 先把这个方法标记成一个 async 方法,然后在这里现在可以用一个 try catch ,在 try 里面,用一下 _signupService 上的 signup 方法。前面加上 await 。 把方法返回的值交给 user 。
下面用 Scaffold.of(context) 上的 showSnackBar 方法,显示一个 SnackBar,添加一个 content 属性,显示一行文字,用一个 Text 小部件,文字是 成功注册用户,后面加上 user 里的 name 的值。
catch 到错误,这个错误是 error 。 要做的事也可以显示一个 SnakBar ,复制一份,要显示的文字就是错误信息,这里就是 error 。
测试
在应用里试一下,输入用户名,密码,按一下 注册新用户 ,因为要注册的用户已经存在了,所以会在 SnackBar 上显示用户已经存在了。这个文字是后端服务响应回来的异常数据里的 message 属性的值。
修改一下要注册的用户的用户名,重新再提交一下这个表单。 这次在 SnackBar 上会显示成功注册了用户。