I can't use setState
function inside dialogContent
and I got this error :
The method 'setState' isn't defined for the class 'CustomDialog'
and here I used setState()
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: status ? <Widget>[
Container(
child: Padding(
padding: EdgeInsets.only(right: 5,top: 0),
child: Image.asset(
'assets/images/profile.png',
width: 60.0,
height: 60.0,
),
),
),
Padding(
padding: const EdgeInsets.only(top: 0.0),
child: Container(
width: 200.0,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.only(
topLeft: const Radius.circular(50.0),
topRight: const Radius.circular(50.0),
bottomLeft: const Radius.circular(50.0),
bottomRight: const Radius.circular(50.0),
),
),
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Center(
child: Text(
'test',
style: TextStyle(
color: Colors.black,
fontWeight: FontWeight.bold,
fontSize: 25.0
),
),
),
),
)
),
Padding(
padding: const EdgeInsets.only(left: 5.0),
child: CustomSwitch(
activeColor: Colors.green,
value: status,
onChanged: (value) {
print("VALUE : $value");
setState(() {
status = value;
});
},
),
),
] :
[
Expanded(
child: Padding(
padding: const EdgeInsets.only(left :25.0),
child: Center(
child: Text(
'test',
style: TextStyle(
color: Colors.red,
fontSize: 15.0,
),
),
),
),
),
Padding(
padding: const EdgeInsets.only(left: 0.0),
child: CustomSwitch(
activeColor: Colors.green,
value: status,
onChanged: (value) {
print("VALUE : $value");
setState(() {
status = value;
});
},
),
),
]
),
Sure you can't use setState() in StatelessWidget, that's the idea of this widget. StatelessWidget should be used only for "dumb" views that shouldn't hold any state. If you should set any state to your widget, consider to use StatefulWidget.
Take a look on official flutter documentation: https://api.flutter.dev/flutter/widgets/StatelessWidget-class.html