setState()

no minho·2023년 10월 9일
class _DicePageState extends State<DicePage> {
  int leftDiceNumber = 1;

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Row(
        children: [
          Expanded(
            child: Padding(
              padding: const EdgeInsets.all(16.0),
              child: TextButton(
                onPressed: () {
                  setState(() {
                    leftDiceNumber += 1;
                  });
                },
                child: Image.asset("images/dice$leftDiceNumber.png"),
              ),
            ),
          ),
          Expanded(
            child: Padding(
              padding: const EdgeInsets.all(16.0),
              child: TextButton(
                onPressed: () {
                  print('Right button got pressed.');
                },
                child: Image.asset("images/dice1.png"),
              ),
            ),
          )
        ],
      ),
    );
  }
}

onPressed에 setState()를 사용했을떄 안했을떄의 차이점

  • onPressed는 변수를 업데이트하지만 화면까지 렌더링해주진 않음
  • setState는 변수 업데이트 + 화면 초기화까지 같이 진행

0개의 댓글