我正在ReactNative应用中使用蓝牙。我正在尝试为发现的设备创建UI。为了使用BT,我使用库react-native-ble-plx
和方法:
startDeviceScan(
UUIDs: UUID[] | null,
options: ScanOptions | null,
listener: (error: BleError | null, scannedDevice: Device | null) => void
): void
我使用数组方式是:
export default class App extends Component {
state = {
devices: [],
};
....
}
和向设备阵列添加项目:
BleManager.startDeviceScan(
null,
{
allowDuplicates: false,
},
async (error, device) => {
if (error) {
console.log(error.reason);
_BleManager.stopDeviceScan();
}
if (device.localName != null) {
if (!this.state.devices.includes(device)) {
this.state.devices.push(device);
}
}
},
);
但是在这里我发现我的检查includes
不起作用,检查项目是否在数组中也没有帮助。我如何才能检查数组中是否已经有一些项目,或者可以用另一种方法来完成?
1条答案
按热度按时间soat7uwm1#
device是对象,devices是对象的数组,不能用
includes
方法检查devices数组中是否包含设备对象,可以用下面的函数检查。