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
。我的问题是,为什么弗利特会发出这样的警告。有没有什么东西让这件事变得不受欢迎呢?这里有两件事我可以提出。第一个是,他们可能试图在对象中保留状态的内部含义,尽管我同意,从另一个对象中设置状态可能会很好,这导致我提出了第二个关于颤振的建议,可能是试图推广一种“正确”使用状态的方法并可能以最佳方式降低状态管理的复杂性。