ReactNative进阶(六):ReactNative语法学习及常见问题汇总

一、基础知识

1.1 {} 与 ()

对于第一次接触ReactNative的同学,最痛苦的是什么时候使用{},什么时候使用(),当然我也经历过那段时间,为此简单总结了下。

  • ReactNative中,使用表达式的时候需要用{}包住;
css 复制代码
style={styles.mainStyle}
  • ReactNative中,在字符串中使用变量的时候,需要用{}包住;
java 复制代码
var str = 'hello'
<Text>{str}</Text>
  • ReactNative中,对象,字典需要用{}包住;
java 复制代码
style = {}, // 最外层表达式,用{}包住
{flex:1}, // 对象,用{}包住
<View style={{flex:1}}></View>
  • 创建组件<View></View>,必须要用()包住; 因此只要返回组件,都需要用()。
java 复制代码
render(){
    return (
        <View style={styles.mainStyle}>
        </View>
    )
}

1.2 注释

HTML标签节点内,使用{/* */}进行注释;HTML标签节点外,多行可以用/**/进行注释,单行可以用//进行注释。

使用 // 作为注释要注意,注释内容必须不在任何 html 标签里,否则会当成要显示的文本内容。

二、常见问题

2.1 How to resolve "EADDRINUSE: address already in use" error(8081端口被占用了)  

Error: listen EADDRINUSE: address already in use :::8081 at Server.setupListenHandle as _listen2 (net.js:1258:14) at listenInCluster (net.js:1306:12) at Server.listen (net.js:1394:7)

解决办法:

javascript 复制代码
lsof -i TCP:8081 | grep LISTEN

会出现如下类似提示:

javascript 复制代码
node    2464 murari   21u  IPv6 4392639      0t0  TCP *:http-alt

然后执行:

javascript 复制代码
kill -9 2464

2.2 Android error "Could not get BatchedBridge, make sure your bundle is packaged properly" on start of app

shell 复制代码
react-native run-android
react-native start --reset-cache

三、延伸阅读

在学习一门新语言,搭建完新项目时,有必要了解下项目结构。

HelloWorld > |-- android > |-- ios > |-- node_modules > |-- package.json > |-- index.js

> |-- img > |-- public > |-- scene > |-- libs

android:Android原生工程目录;

ios:IOS原生工程目录;

package.json:React Native是基于javasript开发的语言,使用npm做为包管理工具,这个文件就是npm的包管理文件,主要配置项目依赖的第三方包;

index.js:这个文件是IOS和Android在相应设备上打包运行的入口文件;(备注:早期React Native项目应该是index.ios.js和index.android.js两个单独的入口文件)

img:存放界面要显示的png图片;

public:存放工具js,网络请求js的封装,数据存储js等相关操作的js;(备注:可以在public中创建分类目录,public/net、public/datastorage等)

scene:存放项目的JS组件(界面);(备注:可以在scene目录下创建不同功能模块的目录,例如scene/draw,scene/user,scene/home等二级三级目录)

四、拓展阅读

相关推荐
data analyse 4561 分钟前
埋点工具的埋点查询语言难学吗?
前端·数据分析
DianSan_ERP10 分钟前
多平台订单自动下载与回传的技术实现:从消息推送到状态闭环引言
java·linux·服务器·前端·网络·架构·自动化
恋猫de小郭10 分钟前
Shopify 回应为什么从 RN 回到原生,为什么不用 KMP ?
android·前端·flutter
小蜗 strong43 分钟前
和电脑猜拳(随机程序应用)
服务器·前端·python
下家2 小时前
为了脱离前端鄙视链,于是自己写个框架 - React 党看完沉默了
前端·前端框架
zhiyouTech2 小时前
从“被看见“到“被信任“:关于信源评级机制的一点观察
大数据·前端·人工智能
Hashan2 小时前
Vibe Coding 下前后端怎么对接接口?后端不给力的兜底方案
前端·后端·vibecoding
你挚爱的强哥3 小时前
【sgKeyboard】自定义组件:虚拟键盘
前端·javascript·计算机外设
锅里游的鱼吖3 小时前
echarts自定义折线图
前端·javascript·数据库
hunteritself3 小时前
卷卷卷!GPT-6 Sol、Luna 正式发布,OpenAI 开始卷价格了
大数据·前端·人工智能·深度学习·transformer