react native初学问题集合(持续更新中)

8 篇文章 0 订阅
6 篇文章 2 订阅

1.连接模拟器

cmd到android sdk文件加下

D:\Program\Android\sdk\platform-tools>
执行
adb devices

然后
adb connect 127.0.0.1:21513
注意各版本的模拟的端口不一样的,多开下的端口又不一样
模拟器端口
网易Mumu7555
夜神62001
逍遥21503
iTools54001
天天6555
海马26744
BlueStacks5555

至于多开模式下具体每个模拟器的具体端口可以使用:

比如说逍遥就搜前三位端口
netstat -ano|findstr 215

剩下你就只能去一个个试端口了(当然端口是越来越大),我的第二台端口是21513,祝你好运~~~~~

2.关于代码修改后更新app

使用命令

adb shell input keyevent 82

可以直接调出开发者菜单

点击Reload更新代码

你也可以直接摇晃手机,但是模拟器可能要摇多次才能调出开发者菜单

这样还是太累那么我们可以使用开发者菜单里的

enable live reload
或
strat/stop sampling profiler

他会实时监听你的修改,并更新app

双击ctrl+s也可更新代码
reload重新加载
debug js remotely远程调试js
enable live reload启用实时重新加载
disable hot reloading禁用热重新加载
toggle inspector切换
hide perf monitor隐藏perf监视器
strat/stop sampling profilerstrat / stop采样分析器
dev settings开发设置

3.为了同在浏览器上开发

请安装react-devtools 安装步骤按官方的就可以了

请注意是官方

是不是很开心

#每次更新代码后 重新执行以下命令

adb shell input keyevent 82

#就出来了

#注意更新代码前,你需要重新在developer中view工具栏reload以下

#用于查看console.log
http://localhost:8081/debugger-ui

小技巧:使用 toggle inspector 加 devtools 跟方便快捷

4.的使用console.log

// 在相应的工程下启动 react-native log-android 官网有详细文档
// 为性能考虑
if (!__DEV__) {
  global.console = {
    info: () => {},
    log: () => {},
    warn: () => {},
    debug: () => {},
    error: () => {}
  };
}

5.关于mqtt消息队列的链接

可使用react_native_mqtt 或 react-native-paho-mqtt

react_native_mqtt

import init from 'react_native_mqtt';
import {
  AsyncStorage
} from 'react-native';

init({
  size: 10000,
  storageBackend: AsyncStorage,
  defaultExpires: 1000 * 3600 * 24,
  enableCache: true,
  reconnect: true,
  sync: {}
});

function onConnect() {
  console.log("成功");
  client.subscribe('dev');
}

function onConnectionLost(responseObject) {
  if (responseObject.errorCode !== 0) {
    console.log("onConnectionLost:" + responseObject.errorMessage);
  }
}

export function onMessageArrived(message) {
  console.log("onMessageArrived:" + message.payloadBytes);
  console.log("onMessageArrived:" + message.destinationName);
  console.log("onMessageArrived:" + message.qos);
  console.log("onMessageArrived:" + message.retained);
  console.log("onMessageArrived:" + message.duplicate);
  console.log("onMessageArrived:" + message.payloadString);
}

const client = new Paho.MQTT.Client('10.158.4.203', 8083, '/mqtt');
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;
client.connect({
  onSuccess: onConnect,
  onFailure: (e) => {
    console.log('失败');
    console.log(e);
  },
  useSSL: false
});

react-native-paho-mqtt

import {
  Client,
  Message
} from 'react-native-paho-mqtt';

console.log('react-native-paho-mqtt');
const myStorage = {
  setItem: (key, item) => {
    myStorage[key] = item;
  },
  getItem: (key) => myStorage[key],
  removeItem: (key) => {
    delete myStorage[key];
  }
};

console.log(1);
const client = new Client({
  uri: 'ws://127.0.0.1:8083/mqtt',
  clientId: 'dev',
  storage: myStorage
});

console.log(2);
// set event handlers
client.on('connectionLost', (responseObject) => {
  if (responseObject.errorCode !== 0) {
    console.log('error:' + responseObject.errorMessage);
  }
});

client.on('messageReceived', (message) => {
  console.log('message:' + message.payloadString);
});

// connect the client
client.connect()
  .then(() => {
    // Once a connection has been made, make a subscription and send a message.
    console.log('onConnect');
    return client.subscribe('dev');
  })
  .catch((responseObject) => {
    if (responseObject.errorCode !== 0) {
      console.log('onConnectionLost:' + responseObject.errorMessage);
    }
  });

本地mqtt环境使用emqx

6.eslint 配置

airbnb规则
插件

eslint

eslint-config-airbnb

eslint-plugin-import
#airbnb规则库
eslint-plugin-jsx-a11y
#react规则
eslint-plugin-react
#es6
babel-eslint

# app.js 检查的文件 --ext后面跟上的.js是你要检测文件的后缀,后面的src是要检测的哪个目录下面的文件。
"lint": "eslint app.js --ext .js ./src",

#--fix的作用是自动修复根据你配置的规则检测出来的格式问题
"lint-fix": "eslint app.js --ext .js ./src --fix"


7. Error:Failed to crunch file

问题:Android studio 导入项目出现错误Error:Failed to crunch file
解决方案:项目路径不要放得太深.直接将工程放在根目录下.如:E://xxx
原因:这个是因为在windows系统中AndroidStudio的文件路径不能超过240字节。所以报错.

 

 

资料:

1. https://www.cnblogs.com/shansheng/p/6478802.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值