如何在反应原生项目上导入权限模块?

问题描述:

我是新的反应本地和typescript.I想创建权限模块为我的反应本地的项目,我分隔在下面Yonah's project两个链接和Facebook's permissions project如何在反应原生项目上导入权限模块?

Additionaly

NPM安装,NPM启动,纱运行构建 - 观察和反应 - 本地运行 - 安卓

命令运行顺利,但权限模块不使用它,我不提出这个模块添加我的项目。
我在下面尝试链接;

const permission = require('react-native-permissions') 
import React from 'react' 
import { 
StyleSheet, 
TouchableHighlight, 
Text, 
View, 
Alert, 
AppState, 
Platform, 
PermissionsAndroid, 
} from 'react-native' 

interface Props { 
names: string[] 
} 

interface PermissionsState { 
status: PermissionStatus 
} 

type PermissionStatus = 'granted' | 'denied' | 'never_ask_again' | '' 

export class permissions extends React.Component<Props, PermissionsState> 
{ 
constructor(props: Props, context: any) 
// tslint:disable-next-line:brace-style 
{ 
    super(props, context) 

    this.state = { 
     status: '', 
    } 
} 

public render() 
// tslint:disable-next-line:brace-style 
{ 
    return (<View> a </View>) 
} 
} 

async function requestCameraPermission() { 
try { 
    const granted = await PermissionsAndroid.request(
     PermissionsAndroid.PERMISSIONS.CAMERA, 

    ) 
    if (granted === PermissionsAndroid.RESULTS.GRANTED) { 
     // console.log("kamerayı kullanabilirsiniz") 
    } else { 
     // console.log('kamerayı kullanamazsınız') 
    } 
    } catch (err) { 
    // console.warn(err) 
    } 
    } 

    export default permission 

requestCameraPermission函数未被调用。你可以尝试调用函数

constructor(props: Props, context: any) 
// tslint:disable-next-line:brace-style 
{ 
    super(props, context) 

    this.requestCameraPermission= this.requestCameraPermission.bind(this); 

    this.state = { 
     status: '', 
    } 
} 

componentWillMount() { 
    this.requestCameraPermission(); 
    ..... 
} 

的多个请求看到这个例子

export async function requestForPermission() { 
try{ 

const granted = await PermissionsAndroid.requestMultiple(
    [ 
    PermissionsAndroid.PERMISSIONS.CAMERA, 
    PermissionsAndroid.PERMISSIONS.RECORD_AUDIO, 

    PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION, 
    PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION, 

    PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE, 
    PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE, 
    ], 

) 

........ 

} catch (err) { 
    console.warn(err) 
} 
} 

@ ++

+0

componentWillMount得到一个错误,这是[TS]找不到名称 'componentWillMount'。 任何 –

+0

和我需要这种方法,构造函数是相同的行为,只要我知道 –

+0

我编辑我的示例! – TrinitA