因为之前没有js的经验,所以踩坑较多,在此做个记录。
环境:
Visual stadio code(1.28.2) + Mac + React Native + 安卓模拟器
Q:VS Code在格式化代码的时候表现很怪异。
A:因为vs默认按照js进行格式化,所以我们需要将js设置为Javascreat React.
Q: 我明明导入了模块,但是运行时候提示我没有导入模块。
Invariant Violation:
Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined.
You likely forgot to export your component from the file it's defined in,
or you might have mixed up default and named imports.
A: 仔细对比之后,发现import的写法错误。
// 错误写法
import {NavigatorBar} from '../common/navigator'
------
//正确写法
import NavigatorBar from '../common/navigator'
see:https://blog.csdn.net/junhuahouse/article/details/80558233
Q:模拟器和真机上如何reload
A:模拟器上直接双击R即可,真机的话,左右摇动即可弹出reload选项。
Q:使用fetch发送网络请求,修改了header部分,然后一直报错。。
Error calling RCTDeviceEventEmitter.emit
Failed to create Value from JSON:
run
NativeRunnable.java
handleCallback
Handler.java:751
dispatchMessage
Handler.java:95
dispatchMessage
MessageQueueThreadHandler.java:29
loop
Looper.java:154
run
MessageQueueThreadImpl.java:192
run
Thread.java:761
A:最后重新运行一遍解决(杀死app重新进入也可)。根据提示猜测可能是因为某个异常导致native于rn之间的线程死掉了,从而导致他们之间的链接断开。所以重启能够解决。