运行rn代码的过程中,不小心关闭了终端:
不用担心,其实只要你切到项目的根目录,命令行输入npm start
即可,这样即可开发终端监听。实际上也是node.js的监听服务开启而已。在该目录下可以找到rn的所有的参数属性等等:
flex属性声明在:/node_modules/react-native/Libraries/StyleSheet/LayoutPropTypes.js如何运行官方Demo呢
这里是reactnative的官方demo地址,要想运行这个demo一定要严格按照官方文档来,否则会走弯路(像我一样,哈哈),如果点击的是download zip,那么你就会遇到一系列错误:运行出来的程序出现红屏。蛋疼的要死,执行了npm start
也不管用,所以还是老老实实的用git clone下来然后再打开运行就没有问题了。
- webStorm 在mac下的真对react-native的比较实用的快捷键分享
快捷键 | 执行 |
---|---|
cmd + d | 在下一行复制当前行 |
command + b / 点击 | 定位方法 |
command + option +L | 代码格式化 |
command + e | 打开最近打开的文件或者项目 (直接支持文件名搜索) |
command + / | 注释/取消注释 |
command + shift + / | 注释/取消注释 |
control + tab | 切换上次打开的文件 |
command + shift + f | 全局搜索内容 |
command + f | 当前页搜索 |
command + shift + o | 搜索文件 |
command + shift + v | 选择粘贴剪切板上的内容 |
command + 退格键 | 删除当前鼠标所在行 |
command + option + 左右箭头 | 定位到上次编辑的位置 |
command + option + 上下箭头 | 依次顺序轮换激活打开的标签页 |
command + j | 输出模板 |
command + b | 跳到变量声明处 |
F2 或Fn+F2 | 高亮错误或警告快速定位 |
在哪里搜索第三方库和第三方插件
地址:JS.coach或者github,一般是由JavaScript编写的一般都是支持iOS和Android的。react-native init时卡住肿么办
我个人建议多等一会应该就可以了,但是等了很久都不可以的话
译注:由于众所周知的网络原因,react-native命令行从npm官方源拖代码时会遇上麻烦。请将npm仓库源替换为国内镜像:
npm config set registry https://registry.npm.taobao.org
npm config set disturl https://npm.taobao.org/dist```
另,执行init时切记不要在前面加上sudo(否则新项目的目录所有者会变为root而不是当前用户,导致一系列权限问题,请使用chown修复)。 又,react-native.cn中文网提供了完整的绿色纯净新项目包。完整打包全部iOS和Android的第三方依赖,只要环境配置正确,无需科学上网漫长等待,解压后即可直接运行。
* 不要重复创建工程
一般情况下,init一个HelloWorld工程一出来看下工程包的大小,200M+,是不是感到很无奈,针对初学者没创建一个demo,就要init一个工程这简直太low,最少要考虑一下你电脑硬盘的感受啊,有的人会注释掉之前写的代码,但是一个文件里注释的不注释的一大推看起来十分的凌乱,我的建议是大家在相同的目录下创建一个几乎同名的js文件,例如`index2.ios.js`,复制原版的`index.ios.js`也可以,然后打开Appdelegate.m文件,修改为你新文件的目录就可以了,例如:
ES6: jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index2.ios" fallbackResource:nil];
ES5: jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index2.ios.bundle?platform=ios&dev=true"];
这样你就可以在新文件里面编辑或者测试的新代码了,而不用重复的创建工程。
* 根据package.json恢复node_modules
npm install ```
在引用第三方库的时候尽量加上--save
这一步中--save或--save-dev参数是非常重要的。rnpm需要根据package.json文件中的dependencies和devDependencies记录来链接库。
例:npm install xxx --save
- 是不是感觉state和props有些类似?
一般区分两个的原则是,可变的放在state中,不可变的放在props中。
初始化
es5
class *** extends React.Component{ getInitialState: function() { return {liked: false}; }}```
es6
class *** extends React.Component{ constructor(props) { super(props); this.state = {liked: false}; }}```
修改值es5和es6中使用方法相同。this.setState(新的state对象);
读取值其实就是读取一个js对象。
在RN中是没有button的,但是有类似的组件,而且在RN中,连Text都有onPress事件(也就是点击事件)这是跟很多语言不一样的地方。
~/.bashrc
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
webstorm 双击shift键,就会出现search anywhere,这个是我无意间瞎按按出来的,大家可以多尝试,学习新语言就是填坑的过程,不要怕遇到问题,解决问题的过程就是学习的过程。
webstorm -> preferences-> File and CodeTemplates 设置创建工程初始化文件
Command `run-ios` unrecognized. Did you mean to run this inside a react-native project?```
解决方法
`Have you installed the latest version of react-native-cli globally?`
npm uninstall -g react-native-cli
npm install -g react-native-cli
npm install --save react-native@latest