react-native结合dva的使用

作者: brotherwang | 来源:发表于2018-01-19 15:16 被阅读1549次

前言

最近一版的app使用的是react-native,所以搭个架子总结下使用到的技术,

希望可以对有兴趣入坑的同学一些帮助。

**## 环境搭建

请参考react-native中文网

## 运行

安装依赖包


  yarn

android


  react-native run-android

ios


  react-native run-ios

## dva介绍

dva解决了我们使用redux管理数据的那些繁杂的步骤,它把所有的步骤都整合到一个model文件里,在这个文件里你可以管理你的state,处理你的同步action还有异步action,而且还整合了redux-saga,让你的异步处理变得更简洁。美滋滋!

## react-native如何结合dva

1.初始化react-native项目

2.yarn add dva-core

3.yarn add react-redux

使用dva-core的原因是因为react-native并不支持react-router v4,所以我们并不能使用这个路由,我们只需要dva的核心功能就行了。作者也是在这个版本中把dva-core给单独提取了出来,所以我们只需要调用create的方法把它给实例化,然后调用start方法把RN上的路由传进去就行。


import React from 'react';

import { create } from 'dva-core';

import { Provider, connect } from 'react-redux';

export { connect };

export default (options) => {

  const app = create(options);

  if (!global.registered) options.models.forEach(model => app.model(model));

  global.registered = true;

  app.start();

  const store = app._store;

  app.start = container => () => (

      {container}

  );

  app.getStore = () => store;

  return app;

};

## react-native如何添加react-navigation

react-navigation是官方推的一个路由,很好用,切换流畅,而且兼容ios和android。

官方地址

中文参考

## 整合遇到的问题

打包后无法正常运行的情况

1.错误的使用dva-no-router,这是react项目使用的,并不适用于rn,改用dva-core + react-redux

2.解构失败: const value = ({}) => { ... }是不允许的,会报错


ReactNativeJS: 'Unhandled promise rejection', { [TypeError: undefined is not a function (evaluating 'babelHelpers.objectDestructuringEmpty(r)')]

mac运行出现错误


Could not install the app on the device, read the error above for details.Make sure you have an Android emulator running or a device connected and have set up your Android development environment:

https://facebook.github.io/react-native/docs/android-setup.html

解决办法:

在根目录下运行:chmod 755 android/gradlew然后就解决了

react-navigation问题

参考

很全很详细

github地址

个人博客

简书地址

觉得还行给个star或关注都行,感谢开源好世界!!!

相关文章

  • react-native结合dva的使用

    前言 最近一版的app使用的是react-native,所以搭个架子总结下使用到的技术, 希望可以对有兴趣入坑的同...

  • react-native-dva-starter: 集成 dva

    前言 本教程是使用 create-react-native-app 创建基于 dva,react-native,a...

  • Ant Design项目实战

    创建新应用:dva new dva-quickstartcd dva-quickstartnpm start 使用...

  • dva-cli 升级版本

    使用npm install dva-cli -g 安装 dva-cli , 在使用dva -v 查看其版本号, 可...

  • Dva项目搭建

    Dva可以看作React和Redux的结合,可以通过搭建Dva项目实现React和Redux的功能。搭建流程为: ...

  • Dva-TypeScript环境搭建

    一、安装 typescript (推荐使用全局安装) 二、安装 dva-cli(使用全局安装) 三、使用 dva-...

  • Redux源码解析

    写在开始 本篇主要结合react-native 使用redux的过程,说明使用redux的方法和原理,揭秘Redu...

  • react mockjs模拟数据请求

    我使用的是dva框架,通过dva new dva-quickstart直接创建项目 首先引入mockjs 先实现一...

  • dva的入门和使用

    dva的入门和使用 创建项目 安装cli npm i dva-cli -g 创建新项目 dva new [pro...

  • dva工具库---探索dva-loading

    前言 在使用antd pro的时候发现此框架的loading是使用dva自带的dva-loading。之前分析源码...

网友评论

  • 30a9ddedf9be:请问我使用这种方式跳转没有反应是为什么
    this.props.dispatch(NavigationActions.navigate({ routeName: 'SecondPage',params: "hello navigation" }))
    用这种方式是可以:this.props.navigation.navigate
  • 伊尔德邦:在Android下怎么运行?
    strong_3f21:怎么解决的

本文标题:react-native结合dva的使用

本文链接:https://www.haomeiwen.com/subject/zenooxtx.html