.
├── components //组成应用的各个组件
│ ├── Routers.android.js //每个组件若实现不一样,分为android的实现和ios的实现。
│ ├── Routers.ios.js
│ ├── common //公共组件
│ ├── issues //议题页面
│ ├── navigation //导航组件,android用侧边栏,ios准备用tab
│ └── project //项目页面
└── network //网络服务
└── DataService.js
DrawerLayoutAndroid
提供的openDrawer
方法。可以使用react的refs机制去调用。比如我在NavTab组件的openNavDrawer函数中,以this.refs['drawer'].openDrawer();
这样的函数方式去调用。那么如何像这种方式导出自己的方法供父组件直接以函数方式调用?注意导出的方法必须是作为类方法就可以了,比如openNavDrawer这个函数就是导出给父用的。reload js
,程序就有很大概率崩溃,需要react-native run-android
重新开始。<View>
误写成<view>
,或者忘记关闭标签。而这些低级错误,RN里面往往会非常难排除,提示往往都很奇怪,我都是靠走读代码发现。
比如有一次,我看了ECMAScript 6 Features的语法后,将DataService中var SERVER = 'http://www.yudianer.com/api';
这句改成了const SERVER = 'http://www.yudianer.com/api';
,当时没发现什么问题。但后面发现了奇怪的问题,只有在浏览器调试的时候,app才能正常运行,否则什么也不显示,而且没有任何提示。最后打包运行无数次都没反应,只能一点一点注释代码排除,才发现是我用了ECMAScript 6 Features,却没有配置。。。<View></View>
。如果你不幸这么做了,会整个页面不显示了,而没有任何提示。。。renderProject: function(project){
return(
<ProjectCell
onSelect={() => this.selectProject(project)}
project={project}/>
);
},
我会经常忘记这是个函数,而直接写成:
renderProject: function(project){
<ProjectCell
onSelect={() => this.selectProject(project)}
project={project}/>
},
这看上去没什么,问题是这种类似错误的提示很奇怪,不好定位。
RN在android上确实不太完善,调试工具,错误提示,文档等都不是很友好。但去学习下还是挺酷的,而且在facebook不遗余力的推动,相信会越来越完善的。