0

我試圖在我的React Native應用程序中詢問Android權限。我跟着官方文檔here,我得到這個運行時錯誤(從react-native log-android命令):react-native詢問Android運行時權限

W ReactNativeJS: undefined is not an object (evaluating 'PermissionsAndroid.PERMISSIONS.CAMERA') 

這是我的代碼實際上有:

我的進口(按WebStorm生成):

import * as PermissionsAndroid from "react-native"; 

,實際上要求的許可代碼:

try { 
     const granted = await PermissionsAndroid.request(
      PermissionsAndroid.PERMISSIONS.CAMERA, 
      { 
       'title': 'A title', 
       'message': 'A message' 
      } 
     ) 
     if (granted === PermissionsAndroid.RESULTS.GRANTED) { 
      return true; 
     } else { 
      return false; 
     } 
    } catch (err) { 
     console.warn(err) 
    } 
} 

我不明白爲什麼這不起作用,因爲它來自官方文檔。

回答

2

簡而言之:您應該導入react-native模塊的單個成員。這將是這樣的:

import { PermissionsAndroid } from 'react-native'; 

是什麼原因導致的問題是你import語法。在你的例子中,你在模塊中導入整個react-native模塊作爲PermissionAndroid變量。但正如你從我的代碼行看到的那樣,你只需要整個包中的單個成員。

對於我來說,在真實世界中嘗試不同的ES6導入語法並習慣它們真的是一個好主意。

+0

啊我很笨,很累,沒有看到這一個來!是的,它現在有效,其實是一個非常容易的,謝謝 –