Flutter-防京东商城项目-编写注册(2)-35
一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。
代码文档
Flutter防京东商城源码(1-10)链接
Flutter防京东商城源码(11-20)链接
Flutter防京东商城源码(21-30)链接
Flutter防京东商城源码(31-46)链接
注册获取到的验证码在打印台上面可以收到。
gif图的效果是34和35的代码来的。
修改两个BUG
1.第一个
String tel = "";
2.第二个 回到
children: <Widget>[//--------------------------------------------Container(child: JdText(
//-------------------------------------------- text: "请输入验证码",onChanged: (value) {this.code=value;},),//--------------------------------------------height: ScreenAdaper.width(100),),
//-------------------------------------------- Positioned(
3.回到页面添加下面的代码
//--------------------------------------------
import '../config/Config.dart';
import 'package:dio/dio.dart';
import 'package:fluttertoast/fluttertoast.dart';
import '../services/Storage.dart';
import 'dart:convert';
import '../tabs.dart';//引入Tabs
//--------------------------------------------class RegisterThirdPage extends StatefulWidget {//--------------------------------------------Map arguments;
//--------------------------------------------RegisterThirdPage({Key key, this.arguments}) : super(key: key);//------------------------_RegisterThirdPageState createState() => _RegisterThirdPageState();
}class _RegisterThirdPageState extends State<RegisterThirdPage> {//--------------------------------------------String tel;String code;String password='';String rpassword='';@overridevoid initState() {// TODO: implement initStatesuper.initState();this.tel = widget.arguments["tel"];this.code = widget.arguments["code"];}//注册doRegister() async {if (password.length < 6) {Fluttertoast.showToast(msg: '密码长度不能小于6位',toastLength: Toast.LENGTH_SHORT,gravity: ToastGravity.CENTER,);} else if (rpassword != password) {Fluttertoast.showToast(msg: '密码和确认密码不一致',toastLength: Toast.LENGTH_SHORT,gravity: ToastGravity.CENTER,);} else {var api = '${Config.domain}api/register';var response = await Dio().post(api, data: {"tel": this.tel,"code": this.code,"password": this.password});if (response.data["success"]) {//保存用户信息 Storage.setString('userInfo', json.encode(response.data["userinfo"]));//返回到根Navigator.of(context).pushAndRemoveUntil(new MaterialPageRoute(builder: (context) => new Tabs()),(route) => route == null);} else {Fluttertoast.showToast(msg: '${response.data["message"]}',toastLength: Toast.LENGTH_SHORT,gravity: ToastGravity.CENTER,);}}}//--------------------------------------------@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("用户注册-第三步"),),body: Container(padding: EdgeInsets.all(ScreenAdapter.width(20)),child: ListView(children: <Widget>[SizedBox(height: 50),JdText(text: "请输入密码",password: true,onChanged: (value) {//--------------------------------------------this.password=value;
//--------------------------------------------},),SizedBox(height: 10),JdText(text: "请输入确认密码",password: true,onChanged: (value) {//--------------------------------------------this.rpassword=value;
//--------------------------------------------},),SizedBox(height: 20),JdButton(text: "注册",color: Colors.red,height: 74,cb: doRegister,//--------------------------------------------)],),),);}
}
5.回到路由修改下面的代码
'/registerThird': (context,{arguments}) => RegisterThirdPage(arguments: arguments),
6.回到页面
Navigator.pushNamed(context, '/registerThird',arguments: {"tel":this.tel,"code":this.code
});
7.把这个文件拖进来
UserServices
import '../services/Storage.dart';
import 'dart:convert';class UserServices{static getUserInfo() async{List userinfo;try {List userInfoData = json.decode(await Storage.getString('userInfo'));userinfo = userInfoData;} catch (e) {userinfo = [];}return userinfo; }static getUserLoginState() async{ var userInfo=await UserServices.getUserInfo();if(userInfo.length>0&&userInfo[0]["username"]!=""){return true;}return false;}static loginOut(){Storage.remove('userInfo');}
}
8.然后回到文件里面
9.导入
import '../../services/UserServices.dart';
10.添加下面的代码
bool isLogin=false;
List userInfo=[];@override
void initState() {// TODO: implement initStatesuper.initState();this._getUserinfo();
}_getUserinfo() async{var isLogin=await UserServices.getUserLoginState(); var userInfo=await UserServices.getUserInfo();setState(() { this.userInfo=userInfo;this.isLogin=isLogin;});}
11.三木运算判断是否登录
!this.isLogin?Expanded(//--------------------------------------------flex: 1,child: InkWell(onTap: () {Navigator.pushNamed(context, '/login');},child: Text("登录/注册", style: TextStyle(color: Colors.white)),),//--------------------------------------------
):Expanded(flex: 1,child: Column(mainAxisAlignment: MainAxisAlignment.center,crossAxisAlignment: CrossAxisAlignment.start,children: <Widget>[Text("用户名:${this.userInfo[0]["username"]}",style: TextStyle(color: Colors.white,fontSize: ScreenAdapter.size(32))),Text("普通会员",style: TextStyle(color: Colors.white,fontSize: ScreenAdapter.size(24))),],),
)
//--------------------------------------------
12.修改用户名:
写了不用写
Text("用户名://--------------------------------------------
${this.userInfo[0]["username"]
//--------------------------------------------}",
13.编写临时退出按键
import 'package:flutter_app/widget/JDButton.dart';JdButton(text: "退出登录",cb: (){UserServices.loginOut();this._getUserinfo();},
)
Flutter-防京东商城项目-编写注册(2)-35相关推荐
- Flutter-防京东商城项目-编写注册(1)-34
一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹.靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希 ...
- 39 Flutter仿京东商城项目 收货地址列表、增加 修改收货地址布局、弹出省市区选择器...
加群452892873 下载对应39课文件,运行方法,建好项目,直接替换lib目录 pubspec.yaml city_pickers: ^0.1.22 AddressAdd.dart import ...
- Flutter-防京东商城项目-创建商品数据模型 、请求Api接口渲染热门商品 推荐商品 获取数据然后模型赋值-06
一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹.靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希 ...
- Flutter-防京东商城项目-签名验证 增加收货地址、显示收货地址 事件广播-41
一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹.靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希 ...
- Flutter-防京东商城项目-订单列表、订单详情页面布局-45
一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹.靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希 ...
- Flutter-防京东商城项目-提交订单、去支付页面制作-44
一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹.靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希 ...
- Flutter-防京东商城项目-状态管理 多页面数据共享-23
一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹.靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希 ...
- Github上开源仿京东商城项目-安装部署(二)
Github上开源仿京东商城项目-安装部署(二) 2.用IntelliJ IDEA 2020打开项目,选择SuperMarket目录, 将会自动安装相关项目的依赖包,这个时间大约1个半小时. 3.安装 ...
- 京东商城项目实战(3)------京东商城注册页面
项目实战:京东商城(1)----京东商城首页 京东商城(2)----京东商城登录页面 京东商城(3)----京东商城注册页面 网页效果: 网页源代码(入需其他源代码,请在评论下方留言): <!D ...
最新文章
- iOS 一些基础的方法
- angularjs通过ng-change和watch两种方式实现对表单输入改变的监控
- 第十周项目3-血型统计
- 记录gulp报错The following tasks did not complete: cssmin或类似任务
- Jboss AS7 的一些配置备忘
- 外设驱动库开发笔记2:AD8400系列数字电位器驱动
- 阿里的 RocketMQ 如何让双十一峰值之下0故障
- 用CSS使DIV水平居中
- ZFS 学习(转载)
- 拓端tecdat|R语言在不同样本量下的Little‘s MCAR检验
- exe4j打包后 提示 couldn't load main class
- [转]应该被记住的天才,写在图灵诞辰100周年
- 云台球型摄像机市场深度研究分析报告
- 关于混合app 开发框架Ionic
- vue canvas —— 将两张图片合成一张
- 40个经典的社交心理学现象
- httpwatch初级使用
- 运营之光2我的互联网运营方法论与自白
- 清除Chrome浏览器下默认浅黄色背景(保存密码时出现)
- 零基础新手学习算法Leetcode刷题指南
热门文章
- 国内外4款主流ERP系统评测,哪款最好用?
- Deeplab系列算法
- mt管理器错误信息java_MT管理器_MT管理器手机版_MT管理器清爽版_易玩网
- 如何将品牌融入UI设计中?优漫动游
- html+js文字合成语音代码 支持在线试听播放和转换成mp3格式下载到本地 单文件 便携版 在线AI文字转换音频速度超快
- 【FPGA零基础学习之旅#4】定时器设计与蜂鸣器驱动
- 西门子PLC电池涂布机浆料输送系统新能源项目_S7-1200
- 小程序switch内部加上文字_Switch每日情报:国行版《健身环大冒险》微信小程序上线...
- 手把手 php mysql_Ubuntu 12.04 搭建PHP环境(MySQL+PHP+Apache环境)手把手教程 含
- Luogu P4343 [SHOI2015]自动刷题机