我是顫振(和編程)的新手。我不明白為什么我的代碼不能正常作業,這意味著我不明白為什么值和表示沒有改變。我很感激任何建議。
編碼:
Widget build(BuildContext context) {
bool isChecked = false;
<Page and Form code>
Row(
children: [
Checkbox(
checkColor: Colors.white,
activeColor: Colors.red,
visualDensity: VisualDensity.compact,
value: isChecked,
onChanged: (value) {
setState(() {
isChecked = !isChecked;
//state.didChange(value);
print(isChecked);
});
const Text(
'I would like to receive newsletter and promo.',
softWrap: true,
),
],
),
uj5u.com熱心網友回復:
您isChecked在 build 方法中宣告變數,當您呼叫setState時告訴小部件再次運行 build 方法,因此再次isChecked被分配為 false。
要解決這個問題,只需將isChecked變數設為類變數:
由此:
class _MyState extends State<MyWidget> {
...
@override
Widget build(BuildContext) {
bool isChecked = false;
...
}
}
對此:
class _MyState extends State<MyWidget> {
...
bool isChecked = false;
@override
Widget build(BuildContext) {
...
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/352480.html
上一篇:添加新的依賴項之間的沖突
