setState

2018-12-17

react에서 setState는 상태값 변화를 위해 사용한다.
그러나 setState가 비동기적으로 일어나기 때문에 아래와 같이 코드를 작성하면 this.state.count의 값이 +1을 하기 전의 값이 나올 수도 있다.

1
2
3
this.setState({
count: this.state.count + 1,
});

그래서 함수형 setState를 사용한다.

1
2
3
4
5
this.setState(prevState => {
return {
count: prevState.count + 1,
}
})

기존에 객체를 복사한 다음에 업데이트한 값을 setState하는 방식이다.

1
2
3
let all = Object.assign({}, this.state.all);
all.name = 'hi';
this.setState({all});

기존의 Object.assign을 대신해서 아래와 값이 사용하면 된다.

1
2
3
4
5
6
this.setState(prevState => ({
all: {
...prevState.all,
name: 'hi',
}
}))

function tabHandler (index) P
return function tabClickEvent(event) P
conosle.log(index);
{

}