Const [count, setCount] = useState(‘0’)
Setcount (count +1) // 1번
setCount(count -> count + 1)// 2번
2번 경우가 훨씬 좋은 로직인데 그렇다고 무조건 다 저렇게 하는 게 좋은 건 또 아님
두 가지 상태값 왔다갔다하는 것(예를들어 토글같은)이 있다면, 이전의 상태값이 중요함.
on인지 off인지 모르지만 그 전 상태값에 비해서 반대값이 나와야 한다면 2번처럼.
이전에 상태값이 뭐였던 간에 상관없을 경우에는 1번
예시를 들어보면, 모달창같은 경우에는 어떨까 생각해보면 정해진 답은 없음.
기획적으로 달라질수도, 만드는 사람에 따라 달라질 수도 있기 때문에 기획에 맞춰 왜 그런 로직을 선택했는지 설명하는 게 중요한 거임.
❗️회고시간에 자기가 구현한 기능에 대해서 완벽히 소화,이해,설명해보는게 좋음. 꼭. 필수
Const [data, setData] = useState([]);
useEffect(()=>{
fetch(‘http:’)
.then(res=>res.json())
.then(res=>setData(res.result))
},[])
console.log(data)
// 1. []
// 2. [업데이트 된 데이터]
return( <div>{data.map((ele)=>{})}</div>
변수 ( 이렇게 직접 설정하게 되면 작동 x )
함수 ( 조건이 달려있기 때문에 (마지막에 리턴이 있으니까 한번 더 띄우라는 조건) 업데이트가 되는 거임)
빈 배열은 falsy값 x truthy값o
화면에 띄우고 싶지 않다면,
return(
왜냐면 빈 배열의 길이는 0인데 0은 falsy 값이기 때문에 조건을 만족하지 못해서 빈 화면만 띄움
앞에 !를 붙이면 반대로 truthy값으로 변하기 때문에 화면에 띄움
return(
이렇게 되면 빈배열의 result인 키값의 배열을 달라고 하는건데 비어있으니까 키값도 없어서 빈 화면도 아닌 에러가 뜸
배열말고 객체로 들어왔을떄 에러 날텐데 해결해보기