ReactNative Flux框架使用 进阶篇
来源:互联网 发布:苹果蜂窝数据打不开 编辑:程序博客网 时间:2024/06/17 15:33
Flux框架应用—进阶
三、登录功能封装
1. 创建Api.js文件
封装POST请求方法
function _doPost(url, formData) { return new Promise((resolve, reject) => { fetch(url, { method: 'POST', headers: { }, body: formData }) .then((response)=>{ if(response.ok){ return response.json(); } }).then((responseJson)=>{ resolve(responseJson); }).catch((error)=>{ reject(error); }); });}
方法说明:
_doPost方法返回Promise对象
封装login方法
export function doUserLogin(loginData) { let loginForm = new FormData(); loginForm.append("user", loginData.user); loginForm.append("pw", loginData.pw); dispatchAsync(_doPost('url', loginForm), { request: ActionTypes.USER_LOGIN, success: ActionTypes.USER_LOGIN_SUCCESS, failure: ActionTypes.USER_LOGIN_ERROR }, loginData);}
2. AppDispatcher.js文件中增加新方法
export function dispatchAsync(promise, types, action = {}) { const { request, success, failure } = types; dispatch(request, action); promise.then( response => dispatch(success, { ...action, response }), error => dispatch(failure, { ...action, error }) );}
方法说明:
(1)dispatch(request, action); 分发网络请求类型的action
(2)promise.then(); 分发网络请求返回结果的action
3、创建Login.js文件
componentDidMount()生命周期中接收dispatch分发的action
register(action => { switch(action.type) { case 'USER_LOGIN': break; case 'USER_LOGIN_SUCCESS': if(action.response.status == 1) { // {type: ActionConst.RESET} 解决Home时点击返回键,退回到登录页面的问题 Actions.tabbar({type: ActionConst.RESET}); } else { // TODO 提示失败原因 } break; case 'USER_LOGIN_ERROR': // TODO 提示失败原因 break; } });
0 0
- ReactNative Flux框架使用 进阶篇
- ReactNative Flux框架使用 基础篇
- ReactNative之Flux框架的使用
- ReactNative React-native-router-flux框架---刷新当前页面的属性
- ReactNative React-native-router-flux框架---页面跳转与传值
- Flux框架...登陆流程...
- 简单的Flux框架
- flux框架入门
- 《ReactNative》之Redux框架的使用
- ReactNative进阶之react-native-storage的使用及封装
- react-native使用flux
- flux使用入门
- ReactNative进阶---Refs
- Flux框架流程及搭建
- flux架构入门篇
- flux
- flux
- flux
- 【LeetCode】palindrome-partitioning i&ii
- nsq源码阅读 nsqlookupd源码二 registration_db.go
- MKT LK
- springMVC 中几种获取request和response的方式
- 机器学习实战读书总结
- ReactNative Flux框架使用 进阶篇
- Mybatis返回主键id
- 编程常用函数
- Android坐标系 键盘的关闭和开启
- ZOJ-1577 求素因子个数 + gcd和lcm的性质?(或者你也可以暴力?)
- 小程序--学生管理系统
- Pandas Window对象
- Java mocking 单元测试框架介绍
- 第一章 React概述