setState는 비동기 함수이다!
이게 무슨말이냐? => setState는 바로 처리되는 함수가 아닌 얼마가 걸릴지 모르는 하나의 요청이다!
예를들면,
handleChange (e) {
this.setState({name : e.target.value})
console.log(this.state.name)
}
라고 작성된 코드에서는 console.sole에 setState로 업데이트 된 state값이 찍히는 것이 아닌, 이전 값이 찍힌다.
동기는 내가 쓴 어떤 코드가 그 일이 끝날때까지 기다리는 것이 동기이다.
(forEach() Map() 등은 다 처리될 때 까지 그 문장에 멈춰있다.)
비동기는 (예를 들면, fetch(), setState()) 는 일단 요청을 보내고 바로 다음줄로 진행이 넘어갔다가 끝나면 다시 돌아온다.
callBack함수(cb)는? 인자인데 그 인자가 함수인 경우!
setState를 하고 this.State.value 로 그 값이 잘 바꼈나 볼려고 하지말고!
setState로 들어오는 값을 확인하면 된다~! => 예를 들면 "e"를 인자로 두었다면,
console.log(e.target.value) 를 통해 함수 안에서 e의 값이 잘 들어오는지 확인한다.