Javascript React Native and Estimote-未处理的承诺拒绝:TypeError:null不是对象(正在计算';rnestimoteapproxity.initialize';)

Javascript React Native and Estimote-未处理的承诺拒绝:TypeError:null不是对象(正在计算';rnestimoteapproxity.initialize';),javascript,react-native,beacon,estimote,Javascript,React Native,Beacon,Estimote,新的反应是本地的。我正在构建一个应用程序,并希望集成一个功能,让它与Estimote信标交互。我正在使用从Estimote网站()找到的这个库,并将它集成到我的App.js文件中。我可以通过locationPermission.request()部分,但它在RNEP.proximityObserver.initialize()行上抛出一个错误。错误消息是: [Unhandled promise rejection: TypeError: null is not an object (evalua

新的反应是本地的。我正在构建一个应用程序,并希望集成一个功能,让它与Estimote信标交互。我正在使用从Estimote网站()找到的这个库,并将它集成到我的App.js文件中。我可以通过
locationPermission.request()
部分,但它在
RNEP.proximityObserver.initialize()
行上抛出一个错误。错误消息是:

[Unhandled promise rejection: TypeError: null is not an object (evaluating 'RNEstimoteProximity.initialize')]
- node_modules\@estimote\react-native-proximity\index.js:67:33 in <global>
- node_modules\promise\setimmediate\core.js:37:14 in tryCallOne
- node_modules\promise\setimmediate\core.js:123:25 in setImmediate$argument_0
- node_modules\react-native\Libraries\Core\Timers\JSTimers.js:146:14 in _callTimer
- node_modules\react-native\Libraries\Core\Timers\JSTimers.js:194:17 in _callImmediatesPass
- node_modules\react-native\Libraries\Core\Timers\JSTimers.js:458:30 in callImmediates
* [native code]:null in callImmediates
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:407:6 in __callImmediates
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:143:6 in __guard$argument_0
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:384:10 in __guard
- node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:142:17 in __guard$argument_0
* [native code]:null in flushedQueue
* [native code]:null in invokeCallbackAndReturnFlushedQueue
[未处理的承诺拒绝:TypeError:null不是对象(正在评估'RNestimoteProximition.initialize')]
-node_modules\@estimote\react native approxity\index.js:67:33 in
-tryCallOne中的node\u modules\promise\setimmediate\core.js:37:14
-setimmediate$argument\0中的节点\u modules\promise\setimmediate\core.js:123:25
-节点\u modules\react native\Libraries\Core\Timers\JSTimers.js:146:14 in\u callTimer
-CallimmediatePass中的节点\u modules\react native\Libraries\Core\Timers\JSTimers.js:194:17
-callImmediates中的节点\u modules\react native\Libraries\Core\Timers\JSTimers.js:458:30
*[本机代码]:callImmediates中为空
-callImmediates中的节点\u modules\react native\Libraries\BatchedBridge\MessageQueue.js:407:6
-节点\u modules\react native\Libraries\BatchedBridge\MessageQueue.js:143:6在\uuuu-guard$argument\u 0中
-保护中的节点\u模块\react native\Libraries\BatchedBridge\MessageQueue.js:384:10
-节点\u modules\react native\Libraries\BatchedBridge\MessageQueue.js:142:17位于\uuuu-guard$argument\u 0中
*[本机代码]:flushedQueue中为null
*[本机代码]:invokeCallbackAndReturnFlushedQueue中为null
My App.js代码:

import React, {useState} from 'react';
import * as Font from 'expo-font';
import { AppLoading } from 'expo';
import Navigator from './routes/drawer';

import * as RNEP from '@estimote/react-native-proximity';

const startProximityObserver = () => {
    const ESTIMOTE_APP_ID = "XXXXXXXXXXXXXXX";
    const ESTIMOTE_APP_TOKEN = "XXXXXXXXXXXXXXX";

    const zone1 = new RNEP.ProximityZone(5, "va-test");
    zone1.onEnterAction = context => {
        console.log("zone1 onEnter", context);
    };
    zone1.onExitAction = context => {
        console.log("zone1 onExit", context);
    };
    zone1.onChangeAction = contexts => {
        console.log("zone1 onChange", contexts);
    };

    RNEP.locationPermission.request().then(
    permission => {
      console.log(`location permission: ${permission}`);

      if (permission !== RNEP.locationPermission.DENIED) {
        const credentials = new RNEP.CloudCredentials(
          ESTIMOTE_APP_ID,
          ESTIMOTE_APP_TOKEN
        );

        const config = {
          notification: {
            title: "Exploration mode is on",
            text: "We'll notify you when you're next to something interesting.",
            channel: {
              id: "exploration-mode",
              name: "Exploration Mode"
            }
          }
        };

        RNEP.proximityObserver.initialize(credentials, config);
        RNEP.proximityObserver.startObservingZones([zone1]);
      }
    },
    error => {
      console.error("Error when trying to obtain location permission", error);
    }
  );
};

const stopProximityObserver = () => { RNEP.proximityObserver.stopObservingZones(); };

const getFonts = () => Font.loadAsync({
    'regular' : require('./assets/fonts/Poppins-Regular.ttf'),
    'semibold' : require('./assets/fonts/Poppins-SemiBold.ttf'),
    'light' : require('./assets/fonts/Poppins-Light.ttf')
});

startProximityObserver();

export default function App() {
  const [fontsLoaded, setFontsLoaded] = useState(false);

  if(fontsLoaded) {
    return (
      <Navigator />
    );
  } else {
    return (
      <AppLoading startAsync={getFonts} onFinish={() => setFontsLoaded(true)} />
    )
  } 
}
import React,{useState}来自“React”;
从“expo字体”导入*作为字体;
从“expo”导入{AppLoading};
从“./routes/drawer”导入导航器;
从'@estimote/react native approxity'导入*作为RNEP;
const startProximityObserver=()=>{
const ESTIMOTE_APP_ID=“XXXXXXXXXXXXX”;
const ESTIMOTE_APP_TOKEN=“xxxxxxxxxxxxx”;
常数区1=新的RNEP近光区(5,“va试验”);
zone1.OneInteraction=上下文=>{
console.log(“zone1 Onener”,上下文);
};
zone1.onExitAction=上下文=>{
log(“zone1 onExit”,上下文);
};
zone1.onChangeAction=上下文=>{
log(“zone1 onChange”,上下文);
};
RNEP.locationPermission.request()。然后(
权限=>{
log(`location permission:${permission}`);
if(权限!==RNEP.locationPermission.DENIED){
const credentials=新的RNEP.CloudCredentials(
估计应用程序ID,
ESTIMOTE_应用_令牌
);
常量配置={
通知:{
标题:“探索模式开启”,
文本:“当你遇到有趣的事情时,我们会通知你。”,
频道:{
id:“探索模式”,
名称:“探索模式”
}
}
};
初始化(凭证,配置);
RNEP.proximityObserver.startObservingZones([zone1]);
}
},
错误=>{
console.error(“尝试获取位置权限时出错”,error);
}
);
};
const stopRoximityObserver=()=>{RNEP.proximityObserver.stopObservingZones();};
const getFonts=()=>Font.loadAsync({
“常规”:要求(“./assets/font/Poppins regular.ttf”),
“semibold”:要求(“./assets/font/Poppins semibold.ttf”),
“light”:require(“./assets/font/Poppins light.ttf”)
});
startProximityObserver();
导出默认函数App(){
const[fontsLoaded,setFontsLoaded]=useState(false);
if(fontsLoaded){
返回(
);
}否则{
返回(
setFontsLoaded(真)}/>
)
} 
}
我仔细检查了我的Estimote应用程序ID和应用程序令牌,它们是正确的,所以我不知道初始化函数为什么不工作。我试着查看他们的论坛,但没有发现任何有用的东西。我是否在代码中遗漏了其他内容