Class 如何初始化dart类';具有不带initstate的异步值的私有属性?
每次实例化这个类时,我都希望调用firebase和给定检索值的_数据点。否则,我必须在类中的每个函数中分配数据点(参见FunctionOne示例),这很容易出错。注意:我不能使用initstate,因为这个函数不是小部件(我不需要或不想要构建方法)。如果可以,我会打电话给州政府。谢谢你的帮助Class 如何初始化dart类';具有不带initstate的异步值的私有属性?,class,oop,flutter,dart,Class,Oop,Flutter,Dart,每次实例化这个类时,我都希望调用firebase和给定检索值的_数据点。否则,我必须在类中的每个函数中分配数据点(参见FunctionOne示例),这很容易出错。注意:我不能使用initstate,因为这个函数不是小部件(我不需要或不想要构建方法)。如果可以,我会打电话给州政府。谢谢你的帮助 class AsyncInitExample { AsyncInitExample(this.enterThis); String enterThis; String _datapoint;
class AsyncInitExample {
AsyncInitExample(this.enterThis);
String enterThis;
String _datapoint;
_getThis() async {
var firebaseRetrieved = await //Firebase get this;
this._datapoint = firebaseRetrieved;
}
Future<dynamic> functionOneExample {
this._datapoint ?? await _getThis();
}
// etc. etc. etc.
}
类异步初始化示例{
AsyncintExample(this.enterThis);
这一点;
字符串_数据点;
_获取此()异步{
var Firebase retrieved=wait//Firebase获取此信息;
这是。_datapoint=firebaseRetrieved;
}
未来功能示例{
这个._数据点??等待获取此();
}
//等等等等等等。
}
我建议将私有构造函数与静态方法结合使用,以获取所有异步值,然后使用私有构造函数返回对象:
class AsyncInitExample {
AsyncInitExample._(this.enterThis, this._datapoint);
String enterThis;
String _datapoint;
static Future<AsyncInitExample> getInstance(String enterThis) async {
var firebaseRetrieved = await //Firebase get this;
return AsyncInitExample._(enterThis, firebaseRetrieved);
}
String functionOneExample() => _datapoint;
// etc. etc. etc.
}
类异步初始化示例{
AsyncInitExample.\u(this.enterThis,this.\u数据点);
这一点;
字符串_数据点;
静态未来getInstance(字符串enterThis)异步{
var Firebase retrieved=wait//Firebase获取此信息;
返回AsyncInitExample.\输入this,firebaseRetrieved;
}
字符串函数oneexample()=>\u数据点;
//等等等等等等。
}
通过这种方式,您只需等待
getInstance()
中的Future
,然后就可以访问类中的所有变量而无需等待。这是否回答了您的问题?