State của widget trong Flutter

Các pro Flutter có thể thông não giúp mình chút được không ạ. Mình có thắc mắc thế này:
Một CupertinoSwitch được implement như thế này

bool _isOn = false;
CupertinoSwitch(
   value: _isOn,
   onChanged: (bool value) {
      setState(() {
         _isOn = value;
      });
   },
),

Ví dụ như trong ảnh

  • Nếu mà đặt CupertinoSwitch vào trong một widget là màn hình login thì mỗi khi switch (setState) thì cả màn hình login sẽ bị render lại, ảnh hưởng đến 2 textfield trên.
  • Nhưng nếu tách và custom CupertinoSwitch thành 1 widget riêng thì mỗi khi switch chính bản thân nó lại phải render lại, dẫn đến state của nó lại về ban đầu lúc khởi tạo (_isOn=false)

Vậy mình nên làm thế nào? Hay tư duy mình đang hiểu sai ở đâu? Mong được chỉ giáo
flutter_question1

sao lại ảnh hưởng đến cả 2 textfield trên màn hình login được nhỉ, bạn có đang sử dụng đúng stateful và stateless widget không đấy

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?