inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

iOS/Android 앱 개발을 위한 실전 React Native - Basic

카메라 & 이미지 갤러리 사용하기

launchImageLibrary 가 작동하지 않습니다ㅠ

1234

HappyJay

작성한 질문수 16

0

소스는 아래와 같고,

react-native-image-picker 는 4.0.6 버전 입니다.

사진 선택 화면까지는 나오지만,

실제로 uri는 undified 로 나옵니다. 왜 그런 건가요?

그리고, 여러 사진을 선택하고 싶을 경우에는

보통 어떤 라이브러리를 사용하나요?

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 *
 * @format
 * @flow strict-local
 */

import React, {Componentfrom 'react'
import { ViewTextStyleSheetImageButton } from 'react-native'
import {launchCameralaunchImageLibrary } from 'react-native-image-picker'

class App extends Component {

  state = {
    avatar: ''
  }

  addImage = () => {
    launchCamera({saveToPhotos:true}, response=>{
      
      this.setState({
        avatar: response.uri
      })
    })
  }
  showImage = () => {
    launchImageLibrary({}, (response)=>{
      alert(response.uri)
      this.setState({
        avatar: response.uri
      })
    })
  }

  render() {
    return (
      <View style={styles.container}>
        <Image
          source={{uri:this.state.avatar}}
          style={styles.avatar}
        />
        <Button
          title='Add an Image'
          onPress={() => {this.addImage()}}
        />
        <Button
          title='Show an Image'
          onPress={() => {this.showImage()}}
        />
      </View>
    )
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#e4ab26'
  },
  avatar: {
    width: '100%',
    height: 400
  }
})


export default App;

react-native react es6

답변 2

1

Wintho

HappyJay님,

안녕하세요. 지식공유자 Wintho입니다.

react native image picker가 대대적인 업데이트가 이루어지면서,
활용법이 많이 바뀌었는데 uri 접근 방법도 바뀌었네요.

민정아빠류동수님께서 코멘트 해주신 것처럼 response.assets 배열에 접근하시면 됩니다.
Image를 하나 pick했을 때에는, response.assets[0].uri로 접근 하시면 됩니다.

참고01 : react-native-image-picker githup page
https://github.com/react-native-image-picker/react-native-image-picker/commit/c8f8481eb2c08e8f160ae80177e51c693e887969

참고02: https://github.com/react-native-image-picker/react-native-image-picker#the-response-object

 

현재 버전의 react-native-image-picker로도 Multiple Image 선택은 가능합니다만,
Typescript와 Hooks의 개념이 필요합니다.
react-native-multiple-image-picker를 사용하셔도 되고 (참고: https://github.com/baronha/react-native-multiple-image-picker),
react-native-image-picker를 사용하신다면 다음의 예제 코드를 참고하시기 바랍니다.
https://github.com/react-native-image-picker/react-native-image-picker/tree/main/example/src

감사합니다.

1

민정아빠류동수

왜 그런지는 정확히 모르게구요.

console.warn(response)

디버깅 해보시면

uri 값은 response.assets[0].uri 에 위치하고 있습니다.

response.assets[0].uri

이렇게 uri 값을 가지고 오시면 됩니다.

강의 자료 소스코드는 없나요?

0

321

1

RN 자동완성 기능 질문

0

307

1

환경변수 및 SOURCE관련 질문

0

290

1

글로벌로 설치한다는 게 무슨 말인가요? (-g)

0

311

1

VIsual studio code 에서 react-native run-android 실행시 오류

0

844

2

리액트 네이티브에서 안드로이드 실행

0

559

1

vscode

0

405

2

안드로이드 에뮬레이터 에러...

0

963

1

웹뷰앱 만드는 자세한 방법이 궁금합니다.

0

423

0

App.js 화면 수정 시 안드로이드 emulator 오류

0

340

0

2

0

233

1

ios 구동했을 때 Welcome to React가 아니라 애플

0

472

1

1

0

205

0

진행중 막혀서 질문드립니다

0

375

0

drawer 파트

0

284

0

node.js 설치 오류

0

435

0

vs code 터미널에서의 command not found

0

1560

1

node js 10.15.1 설치가 안됩니다

0

304

0

Unable to boot device in current state: Booted 오류 발생하는경우

1

3183

0

adb 커맨드

1

526

1

Slider만 설치하면 애러가 납니다.

0

314

1

bounces 와 버튼 backgroundColor은 안드로이드에서 적용이 안되는건가요?

0

219

0

오류확인 부탁드립니다.

0

309

0

안드로이드 시뮬 작동 중 오류가 납니다.

0

238

0