用户登录

现在请求注册用户用的这个方法直接放在了注册表单这个文件里面,我们可以单独去创建一个类,类里面可以添加一些方法,这些方法可以用在不同的地方。

在 signup 目录的下面,新建一个文件,放在 providers 里面,文件的名字是 signup_service.dart,文件里面定义一个类,名字叫 SignupService ,在 signup_form 里面,剪切一下这个 signup 方法,把它粘贴到定义的 SignupService 这个类里面。这里还需要导入 Http 这个包提供的一些东西。

有几个地方需要修改一下,这个 signup 方法现在要支持一个参数,类型是 SignupModel,导入定义这个 SignupModel 的文件。参数的名字可以叫 data, 请求里带的数据,name 的值是 data 里的 name ,password 的值,是 data 里的 password。

Provider

现在我们要想办法把这个 SignupService 提供给需要它的小部件,可以去配置一个 Provider,先把它放在 signup 里面,打开 signup.dart 。

在这里用的这个 Scaffold 小部件上面给它包装一个小部件,名字是 Provider,

除了 child ,还需要一个 builder ,它的值是个方法,方法有个 context 参数,方法返回的东西就是 Provider 要提供的东西,这里应该就是一个 SignupService 实例。这个 Provider 来自之前我们安装的 Provider 这个包。

这样在所有它的子部分里面,都可以使用 SignupService 提供的服务了。

使用

打开 signup_form.dart , 先添加一个属性,类型是 SignupService ,名字叫 _signupService ,找到小部件的 build 方法,里面设置一下 _signupService 它的值,用一下 Provider.of 方法,方法有个 context 参数,再设置一下这个方法的类型,类型是 SignupService 。

在 _submitForm 这个方法里面,用一下 _signupService ,上的 signup 这个方法,请求注册新的用户,提供给它一个 _formData,这个 _formData 里面,包含了用户在注册表单上填写的用户名还有密码。

测试

下面可以再试一下,在注册表单里输入用户名,还有密码,然后按一下注册,应用收到服务的响应,会把响应里带的一些数据输出到控制台上。

Service Provider:提供服务《 Flutter 应用案例: 用户注册 》

统计

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

社会化网络

关于

微信订阅号

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