一个上线了的React-Native的项目总结

#3

还有,好像所有React Native的交互事件,都没有默认绑定this,比如点击,必须要this.onClick.bind(this),否则onClick的this就不是component自己,这个跟React的行为不一样,也挺奇怪的。

#4

用es6的 ()=>{} 解决

#5

官方建议用Navigator,所以,如果可能,尽量用Navigator,这样ios和Android都能统一,而且页面的掌控性也好些,我目前没有用router

#6

用es6的 ()=>{} 解决

主要有些复杂逻辑的不太适合内嵌写

官方建议用Navigator,所以,如果可能,尽量用Navigator,这样ios和Android都能统一,而且页面的掌控性也好些,我目前没有用router

我也是用的Navigator,当navigator初始化完成以后,把instance作为global variable,然后取名叫router。。。

那你的页面级的element都是用的ScrollView或者ListView吗?有没有用其他的element?我用View作为页面级的element就会被navigator盖住一部分,ScrollView或ListView又不会,这个感觉比较奇怪

#7

你之前一次分享是react,那时候,你使用了React + Flux + React-router+ material-ui + ImmutableJS

为什么后来改用了Redux呢?
而且不用router,是怎么样的考虑~,是否是因为用了Navigator?

#8
()=>{this._getXXX()} 

这里的this就是外面的this,这是es6支持的方式

Navigator应该不需要作为global的吧,至少我没有那么用
我主要是用View做的root element,没有遮挡

[初学求助]navigatorIOS component y轴不能自动从导航栏以下开始的问题
#9

我非常看好Flux这类框架,但是,确实原生的Flux写起来有些代码冗余,
由于当时的项目早,加上没有成熟的类Flux的库,所以,Flux是最合适的选择
Redux是一个简洁的而且很容易扩展的状态管理框架,思想源于Flux,而且代码更简洁,所以,我后面用了Redux

目前我没有用router,是因为我没有找到合适的router能和Navigator结合的,如果你有推荐,请告诉我,谢谢

#10

感谢回答,

有没有好的react native 的 QQ群,或者微信群推荐呢

#11

目前没有加入过任何群组, :grinning:

#12

@tantan 看来,Stackoverflow才是王道

#13

能不能分享你app,让我体验一下,哈,witer.wu@qq.com

#14

是的,关注一下主要的官网就可以了

#15

Appstore地址

#16

企业级应用,不方便看,不好意思,如果你有技术上的问题,可以随时交流

#17

好滴,感谢~
就是想知道,是不是各种原生的app的功能,基本都能完成。

#18

不能保证都可以,但是,大部分是可以的,因为是一个全新的平台,所以,也要从UI设计上做一些折中和妥协,还要找一些npm上的组件,如果实在没有RN有插件机制,就要自己开发一下了

1 Like
#19

好的,

还有一个问题,你本身是用的obj-c语言在负责开发ios的吗。
不懂obj-c的话,是否同样可以搞定这些事。

#20

我这边又看了下,还是有遮挡的问题,能不能麻烦你给看看,谢谢!

下面是使用View作为root element的代码:

import React, { Component, Text, View } from 'react-native';

export default class extends Component {
  render() {
    return (
      <View>
        <Text>Home</Text>
        <Text>Home</Text>
        <Text>Home</Text>
        <Text>Home</Text>
        <Text>Home</Text>
        <Text>Home</Text>
      </View>
    );
  }
}

下面是效果:

可以挺明显的看到被遮挡了。。。

然后使用ScrollView的话,下面是代码:

import React, { Component, ScrollView, Text, View } from 'react-native';

export default class extends Component {
  render() {
    return (
      <ScrollView>
        <Text>Home</Text>
        <Text>Home</Text>
        <Text>Home</Text>
        <Text>Home</Text>
        <Text>Home</Text>
        <Text>Home</Text>
      </ScrollView>
    );
  }
}

下面是截图:

又没有遮挡了。。。

下面是Navigator的代码:

import React, { Component, NavigatorIOS } from 'react-native';

import { Home } from '../constants/routes';

export default class extends Component {
  render() {
    return (
      <NavigatorIOS ref="navigator"
                    style={{flex: 1}}
                    initialRoute={Home()}/>
    );
  }
}
#21

求项目下载地址,我们也开始开发了,但是还是有一堆不明白的地方

#22

您好 我再用到CodePush的时候遇到一些问题
比如我更新一个版本 按照官方教程使用:
1.react-native bundle --platform android --entry-file index. android.js --bundle-output codepush.js --dev false
2.code-push release MyApp codepush.js 1.0.2
在客户端无法更新不知道怎么回事 我也查了下源代码查看更新返回的JSON 格式是:
{“updateInfo”:{“downloadURL”:"",“description”:"",“isAvailable”:false,“isMandatory”:false,“appVersion”:“1.0.2”,“packageHash”:"",“label”:"",“packageSize”:0,“updateAppVersion”:true}}
不知道什么原因 请您帮我分析一下你在项目中是怎么实施更新的。
目前我的react-native版本是 0.17.0,
react-native-code-push版本是1.5.2-beta
望回复谢谢!或者您留下QQ 我们方便沟通。