본문 바로가기

Coding/Etc120

React Redux 정리 리액트(React.js)는 컴포넌트 기반으로 구성되어있다.각 컴포넌트별로 지역변수/전역변수가 존재하지만 가끔씩 앱 전역으로 쓰이는 전역변수가 필요하다.예를 들면 로그인 유무를 검사하기 위해 isLogin이라는 변수를 사용한다고 가정해보자. isLogin이 true일 경우 정상적으로 로그인이 완료된 상태이기 때문에 회원만 접근이 가능한컴포넌트를 보여줄 것이다. 하지만 false일 경우는 비회원을 위한 컴포넌트만 접근이 가능해야한다.Redux를 알기전까지는 하위 컴포넌트들에게 props로 넘겨줬지만 이는 상당히 불편한 접근법이다.A -> B -> C 형태의 컴포넌트가 있다고 가정해보자.A가 가지고 있는 특정 state가 C에서도 필요하다면 A에서 B로, 다시 B에서 C로 전달해줘야 한다.하지만 중간에 있는 .. 2018. 4. 24.
React Native DrawerNavigator 사용하는 방법 리액트 네이티브로 코딩을 하다보면 네비게이터를 사용할일이 상당히 많이 생긴다.나같은 경우에도 기존에 StackNavigator와 TabNavigator를 자주 사용했었다.그러다가 이번에 기능을 조금 수정하면서 추가하게된 것이 바로 DrawerNavigator이다.이름만 들어보면 무엇인지 조금 헷갈릴수도 있는데 스마트폰을 사용하는 사람이라면충분히 익숙한 기능이다.예를 들어 아래와 같은 화면이 있다고 가정해보면왼쪽 제일 상단에 있는 햄버거 모양을 클릭하거나 화면을 왼쪽에서 오른쪽으로 밀면이렇게 왼쪽에 메뉴를 선택할 수 있는 창이 생성되는 것이다.기존에 나는 검색버튼을 왼쪽에 넣고 글쓰기 버튼을 오른쪽에 넣는 형태로 구성했었는데이번에 게시판을 추가함에 따라 두가지 버튼을 오른쪽으로 밀어버리고 DrawerNav.. 2018. 3. 18.
Expo Sorry about that. You can go back to Expo home or try to reload the Experience 오류 해결 방법 최근 리액트 네이티브로 크로스 플랫폼을 지원하는 어플을 만들었다.Expo XDE를 사용하고 있는데, 나는 아이폰을 사용하고 있기 때문에 안드로이드 에뮬레이터를 작동시켜야 했다.그래서 Genymotion을 통해 가상으로 안드로이드폰을 실행시켜서 내가 만든 어플을실행해봤는데 어느순간부터 갑자기 아래와 같은 에러가 발생했다. Something went wrong.Sorry about that. You can go back to Expo home or try to reload the Experience그래서 찾아보니 나와 같은 에러가 발생하는 사람이 상당히 많았다.그 중 한가지 방법이 설정에서 Expo어플을 찾은 후 특정 권한을 주는 것이었는데, 나같은 경우에는 이미 권한 설정이 완료된 상태였다.그래서 계속 구.. 2018. 3. 17.
React Native 로컬저장소(LocalStorage) 사용하는 방법 리액트 네이티브로 어플을 개발하고 있고 최근에 앱스토어에 출시를 했다.그런데 사용하던 도중 권한 관련하여 수정할 필요성을 느끼고 어떻게 구성할까 고민하다가API서버에서 발급받은 토큰을 Local Storage에 저장하는 형태로 구성했다.로컬 저장소에 저장해놓기 때문에 토큰이 존재한다면 로그인이 된 상태이고존재하지 않는다면 로그아웃 된 상태로 판단할 수 있다.크게 어려운 점은 없다.먼저 단일 값을 저장하는 방법은 아래와 같다. import { AsyncStorage} from 'react-native';_saveData = () => {const data = "testdata";AsyncStorage.setItem('data', data);} Key, Value쌍으로 저장을 하는 형태로 setItem을 통.. 2018. 3. 11.
Application Loader: Cannot proceed with delivery: an existing transporter instance is currently uploading this package 오류 해결 방법 리액트 네이티브로 어플을 만들고 Exp를 통해 빌드를 완료했다.만들어진 .ipa 확장자 파일을 Xcode의 Application Loader를 통해 올리고 있었는데다음과 같은 에러가 발생했다. Application Loader: Cannot proceed with delivery: an existing transporter instance is currently uploading this package 무슨 에러인가 처음에 감이 잡히지 않았는데 검색을 하다보니 답이 나왔다.iTunes Connect에 앱을 전송하던 도중에 Xcode를 종료하면 위와 같은 에러가 발생할 수 있다고 한다.token찌꺼기가 남아있어서 그것때문에 에러가 발생하기 때문에 해당 토큰을 지워준 후 다시 진행해야 한다. /Users/유.. 2018. 3. 9.
please sign in with an app-specific password. you can create one at appleid.apple.com 오류 해결 리액트 네이티브로 작성한 어플리케이션을 앱 스토어에 배포하기 위해작업을 하고 있다.Xcode의 Application Loader를 사용해서 작업해야 하는데기존 애플 아이디와 비밀번호를 사용해서 로그인을 시도했는데 자꾸please sign in with an app-specific password. you can create one at appleid.apple.com 라는 오류가 발생했다.그래서 찾아보니 써드파티 앱에서 로그인할때는 따로 패스워드를 만들어줘야 한다고 한다.먼저 아래의 주소로 들어가서 로그인 한 후 Account 메뉴로 이동한다.(참고로 app-specific password를 설정하기 위해선 two-factor authentication을 사용하고 있는 상태여야 한다) https://ap.. 2018. 3. 8.