首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从StatefulWidget读取状态

从StatefulWidget读取状态
EN

Stack Overflow用户
提问于 2022-04-13 18:03:50
回答 1查看 29关注 0票数 1

我引用了一个StatefulWidget,我想在state类中读取一个变量(完全独立于构建状态)--您将如何做到这一点?

一种方法是在创建状态时保持对状态的引用,这是一种方法吗?

注意:然后它会抱怨const of late final

代码语言:javascript
复制
class SomeStateFullWidget extends StatefulWidget {
  _SomeStateFullWidget state;

  const RadialMenu({Key? key});

  @override
  createState(){
    state = _SomeStateFullWidget();
    return state;} // Error: Don't put any logic in createState

  readThisVariableMethod(){
    return state.readThisVariable;
  }

}

class _SomeStateFullWidget extends State<SomeStateFullWidget >{
  bool readThisVariable = false;
}

然后,我想读取状态变量readThisVariable

代码语言:javascript
复制
   SomeStateFullWidget someStateFullWidget = SomeStateFullWidget();
   bool bVar = someStateFullWidget.readThisVariableMethod();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-13 18:08:26

您可以通过使用GloabalKey来实现您的目标,这个示例可能会帮助您:

代码语言:javascript
复制
 GlobalKey<SomeStateFullWidgetState > myKey = GlobalKey();

 myKey.currentState!.readThisVariable; //here

在这里,您应该将小部件的状态更改为公共状态,而不是私有状态(删除_)。上面示例中的SomeStateFullWidgetState表示小部件的公共状态,因此它是_SomeStateFullWidget的替换名称

其他选项是使用其他状态管理方法,如提供程序,此链接可能会帮助您:

https://docs.flutter.dev/development/data-and-backend/state-mgmt/options

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71862019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档