用户登录

按一下发布按钮要请求发布内容,先得验证一下表单里的数据,定义一个方法,名字叫 validate ,方法里声明一个 isValid,值是 formKey.currentState!.validate() ,如果验证表单字段数据通过了,这个 isValid 就会是 true,下面判断一下,如果 !isValid ,如果没通过,可以 throw 一个 ValidateException() 。

reset()

再定义一个重置表单数据用的方法,名字叫 reset ,在方法里执行一下 setState, 在它里面设置一下 titleFieldController.text 让它等于空白,再设置一下 contentFieldController.text ,设置成空白,然后把 canValidate 设置成 false ,再执行一下 postCreateModel.reset() 这个方法。

submitCreatePost()

编辑一下 submitCreatePost 方法,用一个 try,catch ,设置一下要处理的异常的类型,on AppException,出现异常就显示一个 SnackBar,用一下 ScaffoldMessenger.of(context).showSnackBar,提供一个 SnackBar,它的content 可以使用一个 Text 小部件,文字是 e.message。

然后再添加一个 finally ,不管怎么样都要执行这个 finally 里的东西,这里可以执行 postCreateModel.setLoading,把 loading 设置成 false。

再处理一下 try 区块里要做的事情,先执行一下 validate() 验证一下表单数据,然后执行 postCreateModel.setLoading,把 loading 设置成 true。

下面声明一个 postId,等于 await 执行 postCreateModel.createPost() ,这个方法在成功创建了内容以后,会返回新创建的内容的 id 。在控制台上输出这个 postId 的值。

然后再显示一个 SnackBar,用一下 ScaffoldMessenger.of(context).showSnackBar,提供一个 SnackBar,content 是个 Text,文字是 内容发布成功! 最后再执行一下 reset() ,重置一下。

测试

下面可以测试一下,直接按一下 发布,会显示错误提示。输入一个内容的标题,再输入要发布的内容的正文,然后再按一下发布。内容发布成功会有提示,在控制台上会输出新发布的这个内容的 id。

发布内容《 Flutter 2:创建内容 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点