繁体   English   中英

如何在具有来自另一个有状态小部件的 setState function 的 class 中调用 function ?

[英]How can I call a function in a class that has the setState function from another stateful widget?

我有一个有状态的小部件,它在其 class 方法之一中使用了 setState 方法。 我想将该小部件转换为普通的 class 以便我可以在 Object 面向编程中使用它。 我想在另一个有状态小部件中实例化该 class 的实例,并访问其中包含 setState 方法的方法。 但我目前收到此错误“没有为类型'MyClass'定义方法'setState'。尝试将名称更正为现有方法的名称,或定义一个名为'setState'的方法。”

我怎样才能做到这一点?

setState 方法链接到有状态 Widget 的 state。 如果您想将您的小部件转换为 Class 您不能在其中使用 setState。 但是你可以给 Class 一个 Function 作为参数。 每当您在有状态的 Widget 中实例化此 Class 时,只需将此有状态的 Widget 中的 setState 提供给 class。

我认为您需要为您的代码添加一个比有状态小部件更好的 state 管理解决方案,也许是 riverpod,使用riverpod ,您可以从其他小部件访问相同的通知程序,因此setState功能加上它具有将逻辑和 ui 拆分为的额外好处类似 mvvm 的模式

SetState 仅用于有状态小部件。您不能在没有状态小部件的class中调用set state

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM