typescript - Kan ikke opprette ny BleManager i React Native-app som bruker Expo med react-native-ble-plx
Kan ikke opprette ny BleManager.
hei folkens,
Jeg lager en React Native-app for å kontrollere en ESP32-enhet ved hjelp av biblioteket react-native-ble-plx. Jeg har klonet og modifisert BLESampleExpo-eksempelprosjektet, og jeg la til en velkomstskjerm når brukeren åpner applikasjonen. Etter det kan jeg klikke på "kom i gang" for å gå til prosjekt-skjermen: Velkomstskjerm.
appen fungerer fint på velkomstsiden. Men når jeg går til den andre skjermen, får jeg følgende feil: Feilmeldingen fra Expo.
Render Error: Cannot read property 'createClient' of null
Jeg har prøvd å kommentere ut deler av koden for å finne ut hvor problemet kommer fra, og jeg tror problemet kommer fra denne kodelinjen:
const bleManager = useMemo(() => new BleManager(), []);
Kan noen være så snill å hjelpe meg med å løse denne feilen?
Jeg har funnet mange Stack Overflow-spørsmål om det samme problemet, men ingen av dem har løst det. Fungerer react-native-ble-plx-biblioteket fremdeles? Hvis ikke, hvilket annet bibliotek bør jeg bruke?
Svar #1
Jeg fikk den samme feilen, og løste den etter å ha fulgt installasjonsveiledningen for konfigurasjonspluginen react-native-ble-plx fra denne bloggen og kjørt utviklingsserveren i stedet for Expo Go.
For å oppsummere:
- Etter å ha lagt til denne konfigurasjonen i
app.config.jsellerapp.json-filen:
...
"plugins": [
[
"@config-plugins/react-native-ble-plx",
{
"isBackgroundEnabled": true,
"modes": [
"peripheral",
"central"
],
"bluetoothAlwaysPermission": "Allow $(PRODUCT_NAME) to connect to bluetooth devices"
}
]
],
...
- Kjør
expo prebuild - Lag en utviklingsbygning
npx eas build --profile development - Skann QR-koden, installer appen på telefonen din og kjør den
- Til slutt
yarn start --dev-client, og utviklingsserveren bør dukke opp på telefonen din, velg den og kjør den
