Flutter setState 预期有 3 个位置参数,但发现 1 个错误

标签 flutter setstate flutter-state

单击按钮时,我尝试调用 setState 但 VScode 会生成如下所示的错误。 它的 Stateful 小部件和 VScode 建议 setState(mounted, setState, fn);

1

 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/

相关文章:

dart - http.get() 不在 header 中添加我的参数

javascript - 修改数据时setState不会触发重新渲染

flutter - PopUpWindow弹出后如何调用setState(重建页面)?

reactjs - 如何动态使用 map 函数 Hook useState 属性

flutter - 在 flutter 中未调用 Dispose 方法

graphics - 在相机小部件顶部显示 mask 区域

Flutter 和 Firestore!设置一个集合,一个文档和一个字段

flutter - 我们到底什么时候使用 async-await 呢?

flutter - List.remove() 删除了正确的对象,但列表中对象的状态发生了变化,就好像最后一个条目正在被删除一样

flutter - Navigator.push() : Error: Could not find the correct Provider above this Consumer Widget