【问题标题】:BleManager react-nativeBleManager 反应原生
【发布时间】:2021-02-22 15:37:34
【问题描述】:

我对 React-Native 中的 BleManager 有疑问。我认为我的导入是正确的

import BleManager from 'react-native-ble-manager';

我尝试用这个命令启动Blemanager

我尝试了很多东西,但没有一个能正确运行。

我只想启动Blemanager。我有正确的 build.gradle 。我看到了几个函数,但它们都不起作用。

我不知道我是否正确使用了该功能。我找不到任何好的文档...

import { Stylesheet, View, Text, Button, TouchableOpacity,FlatList, Alert } from 'react-native'
import donnee from '../Donnee/data'
import DataItem from './DataItem'
import FilmDetail from './FilmDetail';
import BleManager from 'react-native-ble-manager';
import React, { useState, useEffect } from 'react';
//import BleManager from 'react-native-ble-plx';

const width_proportion = '60%';
const Lwidth_proportion = '30%';
const maxwidth="100%";
const heightinside="12%";
const paddleft = '10%';



 class Search extends React.Component {

render() {
  
function scan (){
    BleManager.start({ showAlert: false }).then((value) => {
      console.log("Module initialized", value);
    });
  }
      
       return (
        <View>

          <View style={styles.entete}></View>
          <View>
            <TouchableOpacity style = {styles.filtrebtn}  onPress={() => this.props.navigation.navigate("FilmDetail")}>
              <Text style = {styles.textfiltre}>FILTRES</Text>
            </TouchableOpacity>
           
            <TouchableOpacity style = {styles.scan}  onPress={() => scan()}>
              <Text style = {styles.textscan}>SCAN</Text>
            </TouchableOpacity>
          </View>
          <View>
               
               <FlatList 
               data={donnee} 
               keyExtractor={(item) => item.id.toString()} 
               renderItem={({item}) =><DataItem donnees={item}/> }  />
          </View>
        </View>
          
        )
    }
}

export default Search

但是当我运行我的应用程序时,它会说

Promise Unhandled reject (id: 0): TypeError: null is not an object (evalating 'bleManager.start'

【问题讨论】:

  • 您是否尝试将您的function scan() 移出render() 并以componentDidMount 状态调用它?
  • 是的,但我也有同样的错误......
  • 你在用expo吗?
  • 是的,这是个问题?
  • blemanager.start 是我将其从组件中取出时出现的问题dimount 我没有任何错误...

标签: javascript react-native bluetooth bluetooth-lowenergy react-native-ble-manager


【解决方案1】:
const SearchScreen = ({navigation}) => {
const [isScanning, setIsScanning] = useState(false);

useEffect(() => {

    BleManager.start({showAlert: false});
    console.log("Module initialized");
}
  }, []);

const startScan = () => {
    if (!isScanning) {
      BleManager.scan([], 10, false)
        .then(results => {
          console.log('Scanning...');
          setIsScanning(true);
        })
        .catch(err => {
          console.error(err);
        });
      console.log('The bluetooth is already enabled or the user confirm');
    }
    navigation.navigate('homeScreen', {position: position});
  };

【讨论】:

  • 感谢您的回答。你能解释一下你上面的代码吗?
猜你喜欢
  • 1970-01-01
  • 2021-05-28
  • 2021-11-07
  • 2021-05-03
  • 2018-03-30
  • 2017-11-09
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多