单击按钮时,我尝试调用 setState 但 VScode 会生成如下所示的错误。
它的 Stateful 小部件和 VScode 建议 setState(mounted, setState, fn);
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
IconButton(
icon: Icon(
Icons.rounded_corner,
),
onPressed: () {
setState(() {
selectedStock--;
});
},
),
Text(selectedStock.toString()),
IconButton(
icon: Icon(
Icons.rounded_corner,
),
onPressed: () {
// setState(mounted, setState, fn);
setState(() {
selectedStock++;
});
},
),
],
),
最佳答案
我也遇到了同样的问题。结果发现问题出在这个导入上:
import 'package:html_editor_enhanced/utils/utils.dart';
它定义了以下方法:
void setState(
bool mounted, void Function(Function()) setState, void Function() fn) {
if (mounted) {
setState.call(fn);
}
}
与 Flutter framework
文件中定义的冲突。
就我而言,事实证明我什至不需要导入,所以我只是将其删除。如果您确实需要此导入,您可以给它一个前缀:
import 'package:html_editor_enhanced/utils/utils.dart' as utils;
这样你就可以通过前缀调用它的方法并直接调用Flutters setState()
。
有关导入前缀的更多信息:https://dart.dev/guides/language/language-tour#libraries-and-visibility
关于Flutter setState 预期有 3 个位置参数,但发现 1 个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68515363/