Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 为什么我只能在“framework.dart”的子类中使用“setState”?_Flutter_Dart - Fatal编程技术网

Flutter 为什么我只能在“framework.dart”的子类中使用“setState”?

Flutter 为什么我只能在“framework.dart”的子类中使用“setState”?,flutter,dart,Flutter,Dart,我已经在流上编写和扩展了它,允许我调用.watch()并自动更新小部件。它工作得非常好,但是,我对扩展传递的状态调用了setState,因此我得到一条警告说成员“setState”只能在“package:flatter/src/widgets/framework.dart”子类的实例成员中使用。。我的问题是为什么不建议/不允许这样做?。为了澄清,我得到了为什么我会收到警告——我正在从另一个类调用setState——但是如果我这样做,为什么Flutter会“在意”呢 我已尝试查找有关任何原因的信息

我已经在
上编写和扩展了它,允许我调用
.watch()
并自动更新小部件。它工作得非常好,但是,我对扩展传递的状态调用了
setState
,因此我得到一条警告说
成员“setState”只能在“package:flatter/src/widgets/framework.dart”子类的实例成员中使用。
。我的问题是为什么不建议/不允许这样做?。为了澄清,我得到了为什么我会收到警告——我正在从另一个类调用
setState
——但是如果我这样做,为什么Flutter会“在意”呢


我已尝试查找有关任何原因的信息,但我只能找到添加辅助函数的明显解决方法,并且没有给出任何原因。

出现此错误的原因可能有两个:

  • 您正在声明状态的某个地方使用静态或final关键字
  • 您无法设置状态,因为扩展正在更新小部件的状态

如果你需要任何进一步的帮助,或者我理解错了,请告诉我

你可能还想检查一下这个谢谢你的回复,我已经试着更新我的问题来澄清我的意思。我明白为什么会收到警告:我是故意从另一个对象调用
setState
。我的问题是,为什么弗利特会发出这样的警告。有没有什么东西让这件事变得不受欢迎呢?这里有两件事我可以提出。第一个是,他们可能试图在对象中保留状态的内部含义,尽管我同意,从另一个对象中设置状态可能会很好,这导致我提出了第二个关于颤振的建议,可能是试图推广一种“正确”使用状态的方法并可能以最佳方式降低状态管理的复杂性。