August 30, 2019
해당 포스트는 Nomad Coder의 초보를 위한 RN강의를 정리한 내용입니다.
모든 모듈의 버전은 최신 버전 기준 입니다.
expo init <프로젝트 이름>
blank
를 선택합니다.name
과 slug
는 임의로 작성합니다.function
기반의 메인 App.js
를 class
기반으로 변경 합니다.
React
의 Component
를 상속하는 class
를 만들어줍니다.
export default function App() {
return (
<View style={styles.container}>
<Text>Open up App.js to start working on your app!</Text>
</View>
)
}
export default class App extends React.Component {
render() {
return (
<View style={styles.container}>
<Text>Open up App.js to start working on your app!</Text>
</View>
)
}
}
npm start
또는 yarn start
를 해 잘 작동하는지 확인합니다.
아래와 같이 잘 동작하는 것을 확인할 수 있습니다.
아래와 같이 필요한 모듈들을 추가해줍니다.
import React from 'react'
import { StyleSheet, Text, View, ActivityIndicator } from 'react-native'
import * as Permissions from 'expo-permissions'
import { Camera } from 'expo-camera'
import styled from 'styled-components'
App
클래스 내부에 권한을 갖는지 확인하는 state
를 선언합니다.
초기값은 null
로 설정해줍니다.
state = {
hasPermission: null,
}
componentDidMount
함수를 async
를 붙여 사용해 줍니다.
Permissions
모듈의 askAsync
함수에 Permissions.CAMERA
를 인자로 전달합니다.
권한 설정을 사용자가 할때까지 기다리도록 await
을 사용해 함수를 호출합니다.
componentDidMount = async () => {
const { status } = await Permissions.askAsync(Permissions.CAMERA)
console.log(status)
}
카메라 사용 권한을 허락하면 status
가 granted가 되는 것을 확인할 수 있다.
다음 포스트에서는 status
를 이용해 권한에 따라 다른 화면이 보여지도록 해보겠습닏다.