RN 12

자식 컴포넌트에서 함수나 상태 끌어올리기

// 자식 컴포넌트 import React, { useImperativeHandle, forwardRef } from 'react'; const ChildComponent = forwardRef((props, ref) => { useImperativeHandle(ref, () => ({ childFunction() { console.log('자식 컴포넌트의 함수 실행됨'); // 추가적인 로직 } })); return ( // 자식 컴포넌트의 JSX 자식 컴포넌트 ); }); export default ChildComponent; // 부모컴포넌트 import React, { useRef } from 'react'; import ChildComponent from './ChildComponent'; co..

RN 2023.12.10

FlatList 격자형태로 이쁘게 나열하기

FlatList로 요소들을 나열할때 그냥 justifyContent: 'space-between'를 준다면 화면의 좌우끝은 안떨어져있지만 요소들이 서로 붙어있어서 margin을 주면 화면을 넘어가버린다 그래서 이쁘게 정렬하려면 화면 너비, margin값, numColumns를 가지고 계산해야한다 예시코드 index.toString() + 'memo'} numColumns={numColumns} scrollEnabled={false} renderItem={({item: memoData, index}) => { const isFirstColumn = index % numColumns === 0; const isLastColumn = (index + 1) % numColumns === 0; const widt..

RN 2023.12.08

구글드라이브에 업로드

앞서 구글 로그인이 되어있다는 가정하에 공식문서 https://github.com/RobinBobin/react-native-google-drive-api-wrapper/blob/master/src/README.md 예제 https://github.com/RobinBobin/gdrivetest/blob/master/src/Files.tsx 라이브러리 다운 npm i @robinbobin/react-native-google-drive-api-wrapper 설정해줘야함 const gdrive = new GDrive(); gdrive.accessToken = accessToken; 백업 예시 await gdrive.files .newMultipartUploader() .setData(JSON.stringify..

RN 2023.12.04

구글 로그인

23.12.01자 내용 라이브러리 설치 npm i react-native-firebase/auth npm i react-native-firebase/app npm i react-native-google-signin/google-signin SHA-1 인증서 가져오기 android 폴더에서 ./gradlew signingReport Firebase 설정 프로젝트 생성 후 빌드 -> Authentication -> Sign-in method에서 구글 로그인 활성화 후 SHA-1키를 집어넣음 google-services.json을 다운받고 (SHA-1키를 집어넣으면 새로 받아야함) android > app에 집어넣음 구글 클라우드 콘솔 -> 대시보드 -> 사용자 인증 정보 -> 사용자 인증 정보 만들기 -> ..

RN 2023.12.01

RN & expo 배포

app.json에 "plugins": [ [ "expo-build-properties", { "android": { "compileSdkVersion": 33, // 안드로이드 버전 13이상으로 맞춰줘야함 시스템버전 33이 안드로이드 13임 "targetSdkVersion": 33, "minSdkVersion": 33, "buildToolsVersion": "31.0.0" }, "ios": { "deploymentTarget": "13.0" } } ] ] 추가 해줘야함 scheme(패키지 네임과 같아야함)과 slug(expo이름과 같아야함)도 잊지 말고 추가 해줘야함 app.json 예시 { "expo": { "scheme": "koback-coach", "name": "코백 코치", "icon": "...

RN 2023.11.30