一个常见的错误是将函数调用与函数本身混淆,导致在 setState 中引用了错误的函数。例如,如果我们有一个名为“_incrementCounter”的函数,我们需要执行它来实现按钮按下时的操作。确保在 setState 中使用此函数本身,而不仅是函数调用。下面是一个代码示例:
class MyWidget extends StatelessWidget {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
Widget build(BuildContext context) {
return GestureDetector(
onTap: _incrementCounter,
child: Text('$_counter'),
);
}
}
在这个例子中,我们创建了一个 MyWidget,它包含一个 GestureDetector 和一个文本框。在 GestureDetector 上注册了一个 onTap 事件,它调用 _incrementCounter 函数来更新计数器。我们将 setState 包裹在 _incrementCounter 函数中,以便每次改变计数器后重新绘制文本框。