我正在从 Flutter 中的 url 获取数据。我有一个名为“表”的后期初始化地图。我正在 initState() 函数内获取数据。当我第一次启动该应用程序时,我在红色屏幕上收到 LateInizialization 错误。我想检测 Late init 是否已初始化,如果未初始化则显示微调器。这是我的代码。
class TablesTab extends StatefulWidget {
@override
_TablesTabState createState() => _TablesTabState();
}
class _TablesTabState extends State<TablesTab> {
late List<dynamic> tables;
var refreshKey = GlobalKey<RefreshIndicatorState>();
GetUriData tablesInstance = new GetUriData(url: '/api/table/getAllTables');
void getTables() async {
tables = await tablesInstance.getData();
}
@override
void initState() {
super.initState();
getTables();
}
Future<void> refreshList() async {
refreshKey.currentState?.show(atTop: false);
// await Future.delayed(Duration(seconds: 2));
var updatedTables = await tablesInstance.getData();
setState(() {
tables = updatedTables;
});
//network call …Run Code Online (Sandbox Code Playgroud) 我想知道如何在带有可为空引用类型的C# 中使用后期初始化的类字段。想象一下下面的类:
public class PdfCreator {
private PdfDoc doc;
public void Create(FileInfo outputFile) {
doc = new PdfWriter(outputFile);
Start();
}
public void Create(MemoryStream stream) {
doc = new PdfWriter(stream);
Start();
}
private void Start() {
Method1();
// ...
MethodN();
}
private void Method1() {
// Work with doc
}
// ...
private void MethodN() {
// Work with doc
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码非常简化。我真正的班级使用了更多的领域,比如doc,还有一些带有一些参数的构造函数。
使用上面的代码,我在构造函数上收到编译器警告,doc未初始化,这是正确的。我可以通过设置docto的类型来解决这个问题PdfDoc?,但是我必须使用?.或!.任何它的地方,这很糟糕。
我也可以 …