728x90
반응형
async와 await을 이용해 순차적으로 진행하게끔
const getLocation = async () => {
//수많은 로직중에 에러가 발생하면
//해당 에러를 포착하여 로직을 멈추고,에러를 해결하기 위한 catch 영역 로직이 실행
try {
//자바스크립트 함수의 실행순서를 고정하기 위해 쓰는 async,await
await Location.requestPermissionsAsync();
const locationData= await Location.getCurrentPositionAsync();
console.log(locationData)
} catch (error) {
//혹시나 위치를 못가져올 경우를 대비해서, 안내를 준비합니다
Alert.alert("위치를 찾을 수가 없습니다.", "앱을 껏다 켜볼까요?");
}
}
reload함수에대한 공부가 아직되지 않았다. 다시 공부해서 정리해보자.
LikePage.js
import React,{useState, useEffect} from 'react';
import {ScrollView, Text, StyleSheet} from 'react-native';
import LikeCard from '../components/LikeCard';
import Loading from '../components/Loading';
import Constants from 'expo-constants';
import {firebase_db} from "../firebaseConfig"
export default function LikePage({navigation,route}){
const [tip, setTip] = useState([])
const [ready,setReady] = useState(true)
useEffect(()=>{
navigation.setOptions({
title:'꿀팁 찜'
})
const user_id = Constants.installationId;
firebase_db.ref('/like/'+user_id).once('value').then((snapshot) => {
console.log("파이어베이스에서 데이터 가져왔습니다!!")
let tip = snapshot.val();
console.log(tip)
let tip_list = Object.values(tip)
if(tip_list.length > 0){
setTip(tip_list)
setReady(false)
}
})
},[])
const reload = () =>{
const user_id = Constants.installationId;
firebase_db.ref('/like/'+user_id).once('value').then((snapshot) => {
//snapshot에 값이 있는지 없는지 체크하는 exists 함수 사용
if(snapshot.exists()){
let tip = snapshot.val();
let tip_list = Object.values(tip)
setTip(tip_list)
}else{
setReady(true)
setTip([])
}
})
}
return ready ? <Loading/> : (
<ScrollView style={styles.container}>
{
tip.map((content,i)=>{
return(<LikeCard key={i} reload={reload} content={content} navigation={navigation}/>)
})
}
</ScrollView>
)
}
const styles = StyleSheet.create({
container:{
backgroundColor:"#fff"
}
})
728x90
반응형
'개발코딩일지' 카테고리의 다른 글
[나만의 수익성 앱, 앱개발 종합반] 개발일지(코딩연습일지) 5주차 (0) | 2021.12.11 |
---|---|
[비개발자를 위한, 웹개발 종합반 (프로그래밍 실무, 풀스택)] 3주차 (0) | 2021.12.10 |
[나만의 수익성 앱, 앱개발 종합반] 개발일지(코딩연습일지) 3주차 (0) | 2021.12.09 |
[비개발자를 위한, 웹개발 종합반 (프로그래밍 실무, 풀스택)] 2주차 (0) | 2021.12.09 |
[나만의 수익성 앱, 앱개발 종합반] 개발일지(코딩연습일지) 2주차 (0) | 2021.12.08 |