ReactNative Flux框架使用 进阶篇
2017-05-02 14:26
671 查看
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分发的actionregister(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; } });
相关文章推荐
- ReactNative Flux框架使用 基础篇
- ReactNative之Flux框架的使用
- ReactNative之Flux框架的使用
- react_native_router_flux_使用详解(二)
- React-Native学习笔记之:弹框框架Popover简单使用
- 【React Native 安卓开发】----侧边栏的实现DrawerLayoutAndroid以及第三方框架react-native-side-menu的使用【第六篇】
- React-Native 之 GD (一)目录结构与第三方框架使用与主题框架搭建
- react-native-router-flux 使用详解(一)
- ReactNative React-native-router-flux框架---刷新当前页面的属性
- react-native-router-flux 使用详解(三)
- React Native是一套使用 React 构建 Native app 的编程框架
- react-native 基础:react-native-router-flux 的使用[意译]
- react-native-router-flux 使用详解(一)
- react-native使用flux
- Android中使用react-native框架中的View组件如何使其中的文本换行
- react-native-router-flux 使用详解(三)
- React-Native学习笔记之:使用Tab react-native-tab-navigator框架
- react-native-router-flux 使用详解(三)
- react-native-router-flux 使用详解(二)
- IOS与React Native混编,将RN框架使用CocoaPods集成到原生项目中