我想在flutter中開發銀行應用程式。 但我得到了這個錯誤。在一個空值上使用了空值檢查運算子 我嘗試了 "flutter channel stable",但它不起作用,也嘗試了'!'運算子(如你在代碼中看到的),但它不起作用...:(
)請幫助我。 注意:容器小部件非常長,這就是為什么我沒有選擇復制。
Widget projectWidget() {
return FutureBuilder<List<Histories>> (
future: dbHelper.getHistories(),
builder: (context, snapshot) {
if (snapshot.hasData && snapshot.data! .length > 0) return Container()。
return ListView.builder(
itemCount: snapshot.data!.length,
itemBuilder。(context, index) {
Histories histories = snapshot.data![index];
return Container()。
},
);
});
}
uj5u.com熱心網友回復:
在構建器內部的else條件是錯誤的。在當前的代碼中,即使快照沒有資料,它也會嘗試呼叫snapshot.data!.length,這就是導致空錯誤的原因。
Widget projectWidget() {
return FutureBuilder<List<Histories>> (
future: dbHelper.getHistories(),
builder: (context, snapshot) {
if (snapshot.hasData && snapshot.data! .length > 0)
return ListView.buildinger(
itemCount: snapshot.data!.length,
itemBuilder。(context, index) {
Histories histories = snapshot.data![index];
return Container()。
},
);
else[/span
return Center(child: CircularProgressIndicator())。
});
}
uj5u.com熱心網友回復:
你的if陳述句有問題,在這樣的情況下,你試圖訪問資料時,它仍然不存在,試試這樣的方法
return FutureBuilder<List<Histories>> (
future: dbHelper.getHistories()。
builder: (BuildContext context, AsyncSnapshot<List<Histories> > snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return ListView.buildinger(
itemCount: snapshot.data!.length,
itemBuilder。(context, index) {
Histories histories = snapshot.data![index];
return Container()。
},
);
} else if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator())。)
} else {
print('error')。
returnText('error')。
}
});
或者你可以用你的if陳述句代替這個if (snapshot.connectionState == ConnectionState.done),像這樣
return FutureBuilder<List<Histories>> (
future: dbHelper.getHistories()。
builder: (BuildContext context, AsyncSnapshot<List<Histories> > snapshot) {
if (snapshot.hasData && snapshot.data! .length > 0) {
return ListView.buildinger(
itemCount: snapshot.data!.length,
itemBuilder: (context, index) {
Histories histories = snapshot.data![index];
return Container()。
},
);
} else if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator())。)
} else {
print('error')。
returnText('error')。
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/306777.html
標籤:
上一篇:C 遞回流程
下一篇:Xcode視圖自動布局問題
