繁体   English   中英

从 Static 方法中获取 Flutter State 值

[英]Get Flutter State Value from Static Method

我们如何从 flutter 中的 static 方法中获取 state 值? ,我有一部 state 被叫电话,需要在某些 static 方法中使用这些 state 值。

String phone = '';

@override
void initState() {
    super.initState();
    getPhoneString();
} 

void getPhoneString() async
{
    // basiclly just get the value from sharef pref
    setState(() {
        phone = 'myhpone-string';
    });
}

static Future<Void> Process() async {
   // get phone state value

}

据我了解,解决方案是当您调用initState()页面“类状态”将存储到另一个 static 值中,您的代码将是:

String phone = '';
static phone myPhoneState;
@override
void initState() {
    super.initState();
    getPhoneString();
    ***myPhoneState = this;***
} 

void getPhoneString() async
{
    // basiclly just get the value from sharef pref
    setState(() {
        phone = 'myhpone-string';
    });
}

static Future<Void> Process() async {
   // get phone state value

}

像这样,您可以随时调用页面 state 及其方法,并且可以随时调用“按钮、对话框......”

如果您想在 static 方法中使用本地 class 变量,您有两个选择。

  1. 制作你的变量 static。
  2. 将您的变量作为参数发送到方法。

不推荐第一个选项。 对于第二个选项,您可以像这样更改 static 方法:

static Future<Void> Process(String param) async {
   // use phone parameter

}

暂无
暂无

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

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