реагирует на родной: typeerror null не является объектом (оценивает '_reactnative simdata.default.get sim info (). DeviceId0) - PullRequest
0 голосов
/ 20 февраля 2020

Я разработал приложение в Expo.И, наконец, мне нужно получить DeviceId пользователя, который не поддерживается в Expo. так что мне пришлось выбросить мой проект, чтобы реагировать на родной, но после удаления, когда я пытался использовать реагировать на родные сим-данные, это не работает. Эта ошибка появляется каждый раз:

typeerror null не является объектом (оценивает '_reactnativesimdata.default.getsiminfo (). DeviceId0)

Что я сделал: Прежде всего Я установил этот модуль с помощью этой команды:

npm я реагировать-нативные-sim-данные, а затем связал это с myproject.

import React from 'react';
import { PermissionsAndroid ,Button,View} from 'react-native';

import RNSimData from 'react-native-sim-data'

export default class App extends React.Component {




  render() {

    return (
    <View>

          <Button title="permission" onPress={()=>{   PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.READ_PHONE_STATE);}}></Button>
          <Button title="Show Id" onPress={()=>{  var x=RNSimData.getSimInfo().deviceId0;
  if(x!=null)alert(x); else alert('nooooo');}}></Button>

    </View>
  )
}
}

Пожалуйста, помогите мне, эта проблема свела меня с ума

1 Ответ

1 голос
/ 20 февраля 2020

Вы пытаетесь использовать это на эмуляторе, у которого нет сим-карты? См. https://github.com/pocesar/react-native-sim-data#caveats в README для реакции-native-sim-data.

Если вы работаете на реальном устройстве с реальной сим-картой, и вы все еще видите эту ошибку, я предложил бы изменить обработчик событий вашей кнопки, чтобы проверить на ноль некоторые из шагов в процессе:

var buttonClickEventHandler = ()=> {  
  var simInfo = RNSimData.getSimInfo();
  if (!simInfo) {
    alert("no info") 
  } else {
    var deviceId = simInfo.deviceId0;
    if (!deviceId) {
      alert("no device Id");
    } else {
      alert(deviceId);
    }
  }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...