保证多个蓝牙扫描模块访问同一个manager实例的方式
新建util.js
js
import { BleManager } from 'react-native-ble-plx';
let instanceCount = 0;
function Singleton() {
// 检查是否已经存在实例
if (!Singleton.instance) {
// 如果不存在实例,则创建实例并赋值
// 初始化实例的属性
this.manager = new BleManager();
instanceCount += 1;
console.log(`BleManager 实例创建次数:${instanceCount}`);
Singleton.instance = this;
}
return Singleton.instance;
}
export default Singleton;
每个页面都是用这个方法获取manager实例,代码如下
js
import Singleton from '../../util';
const manager =new Singleton().manager
后面正常使用manager的地方,都用这个方法获取manager实例,保证了整个项目不会重复多次创建实例,以导致蓝牙扫描出错