我引用了一个StatefulWidget,我想在state类中读取一个变量(完全独立于构建状态)--您将如何做到这一点?
一种方法是在创建状态时保持对状态的引用,这是一种方法吗?
注意:然后它会抱怨const of late final
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。
SomeStateFullWidget someStateFullWidget = SomeStateFullWidget();
bool bVar = someStateFullWidget.readThisVariableMethod();发布于 2022-04-13 18:08:26
您可以通过使用GloabalKey来实现您的目标,这个示例可能会帮助您:
GlobalKey<SomeStateFullWidgetState > myKey = GlobalKey();
myKey.currentState!.readThisVariable; //here在这里,您应该将小部件的状态更改为公共状态,而不是私有状态(删除_)。上面示例中的SomeStateFullWidgetState表示小部件的公共状态,因此它是_SomeStateFullWidget的替换名称
其他选项是使用其他状态管理方法,如提供程序,此链接可能会帮助您:
https://docs.flutter.dev/development/data-and-backend/state-mgmt/options
https://stackoverflow.com/questions/71862019
复制相似问题