728x90

프로젝트/할일목록 앱 (RN) 26

26. 소셜로그인 - 네이버 로그인 후 프로필 정보 보여주기

https://velog.io/@2ast/React-Native-%EB%A1%9C%EA%B7%B8%EC%9D%B8%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC React Native) 로그인에 대하여 아마 아무나 붙잡고 '로그인이 무엇인지 아느냐'라고 묻는다면 모두가 '안다'라고 답할 것이다. 우리는 평소에도 숨쉬듯이 로그인이라는 단어를 말하고, 실제로 의사소통에 큰 무리가 없을 정도 velog.io npm install @react-native-async-storage/async-storage 리액트 네이티브에서 로컬스토리지를 사용하기 위하여 해당 라이브러리를 설치한다. 네이버 로그인후 발급받은 액세스 토큰을 저장하기 위함이다. import React, {useState, useE..

25. 소셜로그인하기 - 네이버 로그인 구현하기 (라이브러리 사용 안함)

https://reference-m1.tistory.com/368 [Front end] SNS 로그인 연동(네이버, 카카오) with React SNS 로그인 SNS 연계에 필요한 개발자 및 앱 등록은 간단하므로 샘플 소스 위주로 정리하였다. 실제 로그인 연동 및 사용자 정보까지 연동이 되는 React 코드이다. developers.naver.com NAVER Developers 네이 reference-m1.tistory.com import React, { useState, useEffect } from 'react' import { SafeAreaView, View, Text, StyleSheet, StatusBar, ScrollView, Dimensions, ImageBackground } from ..

24. 드롭다운 선택시 선택한 아이템 상단에 표시하기

import React, { useState, useEffect } from 'react' import { View, Text, StyleSheet, ActivityIndicator } from 'react-native' import { NavigationContainer } from '@react-navigation/native'; import { createNativeStackNavigator } from '@react-navigation/native-stack'; import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'; import Icon from 'react-native-vector-icons/MaterialIcons' ..

23. 드롭다운 메뉴 가려지는 현상 해결하기

import React from 'react' import { View, FlatList, StyleSheet, Dimensions } from 'react-native' import DropdownItem from './DropdownItem' function DropdownList({ categories, selectCategory, top, left, rate = 1 }){ return ( { // 터치 시작점 설정 : 캡쳐링 방지 (추가) console.log('여기를 지나침') e.stopPropagation() // 터치 버블링 방지 }} > item} renderItem={({item}) => ( selectCategory(item, e)}/> // 아이템 각각의 뷰 화면 : 카테고리 선택시..

21. 할일목록과 사용자 연동하기

* 로그인한 사용자의 할일목록만 조회하기 import React, { useEffect } from 'react' import { View, Button, StyleSheet, Alert } from 'react-native' import { GoogleSignin, GoogleSigninButton, statusCodes } from '@react-native-google-signin/google-signin' function LoginButton({navigation}){ const googleSigninConfigure = () => { GoogleSignin.configure({ webClientId: '137262950194-gcouccatiffjp4ei8aqfi05uruv5j4dl.apps.g..

20. 미래 날짜에 저장하는 투두가 오늘날짜에 저장되는 에러 해결하기

* 미래 날짜의 투두가 오늘날짜에 추가되는 로직오류 수정하기 홈화면에서 미래날짜에 투두를 추가하면 오늘날짜에 저장된다. 이를 해당하는 미래날짜에 추가하기 위하여 로직을 수정해보자! export const getTodosToday = (date, todos) => { const today = getToday(date) // 시간제외 const tomorrow = getTomorrow(getToday(date)) const todosToday = todos.filter(todo => todo.createdAt?.toDate() >= today && todo.createdAt?.toDate() time.js 파일에 아래 함..

19. 화면 레이아웃 깨지는 문제 해결하기

* 할일목록이 비어있는 경우 키보드가 보여질때 이미지가 밀려올라가는 문제 해결하기 import React from 'react' import { View, Text, Image, StyleSheet, KeyboardAvoidingView, Dimensions } from 'react-native' function Default(){ return ( 현재 할일목록이 비어있습니다. ) } const styles = StyleSheet.create({ container: { position: 'absolute', left: 0, top: 0, justifyContent: 'center', alignItems: 'center', width: Dimensions.get('window').width, height:..

18. 소셜로그인 에러 해결하기

* 소셜로그인 에러 리팩토링하기 로그아웃후 앱을 종료했다가 다시 키면 랜딩페이지가 보여야 하는데 홈화면으로 곧바로 이동한다. 이는 로그인 여부를 체크하는 부분에서 결과(result)가 의미없는 객체 {_h, 0, _i, _j: null, _k} 를 반환하기 때문이다. 아래와 같이 결과를 받은 다음에 콜백함수(then)에서 사용자 정보를 조회하면 사용자 토큰(token)이 출력되고 제대로 로그인 여부를 판별할 수 있다. const getUserInfo = async () => await GoogleSignin.getCurrentUser() useEffect(() => { const result = getUserInfo() // if(user){ // navigation.navigate('App') // }..

17. 탭메뉴 배지 사용하기 - 해당 날짜의 할일 갯수 보여주기

* 특정날짜의 할일목록만 추출하는 기능을 함수로 정의하기 export const getTodosToday = (date, todos) => { const today = getToday(date) // 시간제외 const tomorrow = getTomorrow(getToday(date)) const todosToday = todos.filter(todo => todo.createdAt?.toDate() >= today && todo.createdAt?.toDate() time.js 파일에 해당 코드를 추가한다. import React, { useState, useEffect, useRef } from 'react' /..

728x90