flutter - Flutter dart问题-回调方法不返回变量的最新值
问题描述
我正在调用这个 dart 方法,它在按下按钮时位于不同的类上。codeSent 值首先返回 false,然后返回 true。
class Authenticate {
bool codeSent = false;
bool get isCodeSent {
return this.codeSent;
}
Future<bool> signInWithPhone(String phone, BuildContext context) async {
await FirebaseAuth.instance.verifyPhoneNumber(
phoneNumber: phone,
codeSent: (String verificationId, int? resendToken) {
this.codeSent = true;
print('inside: $this.codeSent');
},
);
print(this.codeSent);
return this.codeSent;
}
}
这就是我在按下按钮时从小部件类调用上述方法的方式。在执行以下回调后,codeSent 值始终返回 false,即使在第二次调用它时设置为 true。如何获取 codeSent 变量的最新值,以便能够执行 UI 更新?
bool codeSent = false;
Authenticate auth = Authenticate();
ElevatedButton(
onPressed: () {
auth.signInWithPhone(phone, context).then((result) => {
setState(() => this.codeSent = result),
});
},
child: Text('Verify'),
)
更新根据詹姆斯评论 -
Restarted application in 366ms.
flutter: false
flutter: inside: true
预期结果应该最终返回值应该等于内部打印语句的值。
解决方案
推荐阅读
- asp.net-core - 如何实现应用程序独立的 Kestrel Windows 服务?
- symfony - Mercure & Event Source Polyfill:错误:45000 毫秒内没有活动。收到 2 个字符。重新连接
- sql - Sql - 查询以计算编号。每月的买家
- amazon-web-services - 如何以编程方式扩展托管在 AWS ECS 上的 Docker 容器?
- jwt - 从bubble.io获取JWT
- promql - 维多利亚指标 - 与标签关联的指标
- c++ - 获取 QLabel 的矩形宽度
- ios - 斯威夫特用户界面。如何在 ZStack 顶部放置视图?
- google-sheets - 如何在 Google 表格中合并多个连续的 ISBLANK 检查?
- angular - 无法读取未定义 CRUD 操作的“_id”类型的属性