TIL: Flutter | [노마드코더] State, SetState - 230116

Lumpen·2023년 1월 15일
0

Flutter

목록 보기
14/17

리액트와 마찬가지로 플러터의 state를 변경하기 위해서는
setState() 를 사용한다

class _MyAppState extends State<MyApp> {
  // This widget is the root of your application.
  int counter = 0;
  void onClicked() {
    setState(() {
      counter = counter + 1;
    });
  }
  
}

setState 의 콜백 안에서 변경할 값을 변경해주면 된다

setState를 통해 상태가 변경되면
해당 상태를 가지고 있는 flutter 위젯의 build 메소드가
다시 실행된다

사실 setState는 그냥 build 메소드를 한 번 더 실행하는 것이고
데이터 변경은 setState() 이전에 해주면 된다

하지만 가독성이 좋기 위해 변경되는 상태를 set 함수 안에 넣어주는 편이 좋다

리액트보다 원하는 시기에 화면을 업데이트 해주기 훨씬 편하고
명확한 것 같다

리액트에서 했다면 ref 에 데이터를 넣고
조건문으로 계속 확인하면서 원하는 시점에 setState(ref.current)
이런 식으로 작성 했을 텐데..

리렌더링 시점을 좀 더 자유롭게 가져갈 수 있다
자유도가 높다는 것은 더 많은 실수를 야기할 수 있으니
항상 주의해야 한다

profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글