【REACT NATIVE 跨平台应用开发】环境搭建问题记录&&XCODE7模拟器上COMMAND+R失效的几种替换方法
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/react-native/2147.html
React Native 这里不多介绍,其实就是个跨平台开发原生应用的开源引擎。
更详细的介绍,大家可以搜索“facebook react native” 或 “taobao react native”
附上 React Native 官方网站:http://reactnative.cn
React Native 环境配置文档:http://reactnative.cn/docs/0.23/getting-started.html
Mac 下进行搭建环境时(文档写的流程还是很详细的,这里只提到比较重要的步骤和要注意的):
1. 注意 react-native init AwesomeProject 这一步,可能需要等待更长的时间才能down下来 AwesomeProject项目。Himi按照文档设置了npm仓库源替换为国内镜像,但仍旧很慢。
2. 如果时间过长还是没有能down下来AwesomeProject,大家可以到下方的连接进行下载MyProject是一样的:
http://bbs.reactnative.cn/topic/11/react-native中文网官方发布完整新项目包-无需init
注意下载自己对应的平台版本。如果下载使用MyProject,需要注意如下:
a) 下载后打开 ios 目录下的 MyProject.xcodeproj 会提示 “ it is from an unidentified developer ”类似的语句,还会让你选择是否继续打开,选择open就好啦。如果没有按钮选择只是提示无法打开,那么就要去 安全选项改成 allow apps download from anywhere 。
b) 用Xcode 打开 MyProject.xcodeproj ,编译会报关于权限的错误。使用 chmod -R 777 xx (xx 是下载MyProject的目录路径),将MyProject 所有文件都改成777或755权限,然后重新运行项目即可。
注:环境OK的话,我们开始直接使用终端命令:react-native run-ios
此命令,会重新编译、启动 React Packager、且运行到模拟器上。
环境一切配置成功之后如下图所示:(运行时,除了模拟器外还会启动React Packager)
3. 关于文档说,“在iOS Emulator中按下⌘-R就可以刷新APP并看到你的最新修改!” 这里指的是Xcode7 之前的版本,所以Xcode7 或以上的版本,可以使用如下的两种方式代替:
a) 在模拟器中 使用快捷键”ctrl+command+z” 或 模拟器的菜单“Hardware- Shake Gestrue” 弹出如下;
然后选择“Reload”进行刷新即可看到最新的修改后的结果。
b) 在 React Native 项目中,全局搜索“- (void)showOnShake”这个函数,然后将其中的 [self show]; 直接修改成[self reload];
这时候我们再次使用快捷键 “ctrl+command+z” 将不会显示React Native 的功能栏,而是直接刷新。
c ) 绑定我们自己喜欢的快捷键,只要调用 reload 重新载入函数即可。
Windows下环境配置的过程:
1. 根据官方文档进行即可。http://reactnative.cn/docs/0.22/android-setup.html#content
注意:
Himi使用 react-native run-android 命令无法启动 React Packager ! 虽然能安装应用到我的模拟器上,但是也无法直接启动程序….
所以Himi都是用 react-native start 先来启动 React Packager,然后手动点开安装上的项目 (哭笑不得…)
基本需要安装的如下:
a) JDK
b) Adroid-SDK
c) Android-Studio-IDE (非必要)
d)Git for Window
这里Himi用的是官方Google的模拟器,刷新的话,在模拟器中使用F2 调出功能菜单,进行Reload JS
完成后的截图:
react中父组件调用子组件的方法 最近项目中用到了react,需要在父组件中调用子组件的某个方法,那么如何获取到子组件的实例呢? 这里使用了回调,简单实用,兼容低版本。
相关文章
- 音视频&流媒体的原理以及基础入门知识
- Spring 全家桶之 Spring Web MVC(六)- AJAX & Fileupload
- 参会指南丨第二届SmartNIC & DPU技术创新峰会
- CVE-2020-36179/80/81/82:Jackson-databind SSRF&RCE
- json_decode&json_encode傻傻分不清
- Windows&Linux双系统安装流程
- 7 Papers & Radios | 首篇扩散模型综述;没有3D卷积的3D重建方法
- 每日tips:Dart & Flutter Easy Wins 1-7
- Java基础入门笔记05——面向对象,创建对象的内存分析,继承,封装,多态,object类,this&&super,方法重写,引用类型的强制转换,instanceof,抽象类,内部类,接口,异常。[通
- PHP魔术方法__get && __set
- 让多个模型达成迭代共识,MIT &谷歌新方法激发模型「群体智慧」
- ICLR 2023 Oral | 漂移感知动态神经网络加持,时间域泛化新框架远超领域泛化&适应方法
- Oracle故障处理Rman-06207&Rman-06214的方法
- AMP MySQL升级提升数据库性能的必要之举(amp mysql升级)
- AMP与Oracle结合提升数据库性能($amp oracle)
- Oracle替换技术一种提高工作效率的新方法(oracle &替换)
- Flash&Ajax操作XML实例:无刷新分页
- 用innerHTML &符号副值给文本框后会变成&的方法
- JavascripthasOwnProperty方法&in关键字
- phpforeach使用&(与运算符)引用赋值要注意的问题
- C++中dynamic_cast<>的使用方法小结
- jQuery拖拽&弹出层介绍与示例
- js中传递特殊字符(+,&)的方法