카테고리 버튼을 눌렀을때 카테고리에 맞는 데이터만 그려지도록 만들어봅시다.
// 기존 꿀팁을 저장하고 있을 상태
// 전체보기를 눌렀을때 기존 꿀팁 리스트를 보여줘야 한다.
const [state,setState] = useState([])
// 카테고리에 따라 다른 꿀팁을 그때그때 저장관리할 상태
const [cateState,setCateState] = useState([])
//cateState: 상태변수, setCateState: 상태를 관리할 함수
useEffect(()=>{
// 뒤의 1000 숫자는 1초를 뜻함
// 1초 뒤에 실행되는 코드들이 담겨 있는 함수
setTimeout(()=>{
// 꿀팁 데이터로 모두 초기화 준비
let tip = data.tip;
setState(tip) // state변수에 data.tip 넣음
setCateState(tip) // CateState 변수에 tip 데이터를 넘겨줌
setReady(false) // 준비화면 false로 바꿔줌
},1000)
const category = (cate) => { // cate는 파라미터
if(cate == "전체보기"){
//전체보기면 원래 꿀팁 데이터를 담고 있는 상태값으로 다시 초기화
setCateState(state)
}else{ // 전체보기가 아니면!!
setCateState(state.filter((d)=>{
return d.category == cate
}))
}
}
<TouchableOpacity style={styles.middleButtonAll} onPress={()=>{category('전체보기')}}><Text style={styles.middleButtonTextAll}>전체보기</Text></TouchableOpacity>
화면 그리는 코드 중 (cate) 참고하기
<TouchableOpacity style={styles.middleButtonAll} onPress={()=>{category('전체보기')}}><Text style={styles.middleButtonTextAll}>전체보기</Text></TouchableOpacity>
상태(데이터)가 달라지면 화면을 다시 그린다는 사실 중요!!