Флажок работает только тогда, когда я извлек виджет в его собственный класс с состоянием, почему он не работает в коде в целом?
Изображение древовидной структуры
class LoginForm extends StatefulWidget {
@override
_LoginFormState createState() => _LoginFormState();
}
class _LoginFormState extends State<LoginForm> {
bool rememberUser = false;
@override
Widget build(BuildContext context) {
...
Row(
children: <Widget>[
Align(
alignment: Alignment.centerLeft,
child: Checkbox(
value: rememberUser,
onChanged: (bool value) {
setState(() {
rememberUser = value;
});
},
),
),
Align(
alignment: Alignment.centerLeft,
child: Text("Remember Me")),
Expanded(
child: Align(
alignment: Alignment.centerRight,
child: Text(
"FORGOT PASSWORD?",
style: TextStyle(
fontWeight: FontWeight.w600,
color: Colors.greenAccent[400]),
),
),
)
],
),
...
}
Вот как мне удалось заставить его работать
class RememberUserCheck extends StatefulWidget {
@override
RememberUserCheckState createState() => RememberUserCheckState();
}
class RememberUserCheckState extends State<RememberUserCheck> {
bool rememberUser = false;
@override
Widget build(BuildContext context) {
return Checkbox(
value: rememberUser,
onChanged: (bool value) {
setState(() {
rememberUser = value;
});
},
);
}
}
Кроме того, если бы не было слишком хлопотных советов по хорошей практике кодирования для флаттера, было бы полезно.