[英]Why can't I use variable in Text Widget flutter
最后在一些極好的幫助下,我得到了我需要的變量,但現在的問題是為什么我不能在文本小部件中進一步使用它們,讓我頭暈目眩。 除了在我需要的地方訪問變量之外,一切都在工作。 它可以很好地打印變量。
我簡化了代碼,只訪問了 json 列表的第一張地圖:
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.black,
body: FutureBuilder(
future: Future.wait([fetchList(), fetchMap()]),
builder: (context, snapshot) {
if (snapshot.hasData) {
print("snapshot has data");
////list json variables
final dp = (snapshot.data as List)[0] as List<dynamic>;
final first = dp[0];
final dpid1 = first["id"]; //1
final dpbme1 = first["name"];
print(dpbme1);
.......................etcetera................
} else if (snapshot.hasError) {
return Text('${snapshot.error}');
}
return SafeArea(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Image.asset('assets/images/top_logo_320x40.jpg'),
Center(child: Text('$dpbme1', <<<<<gives an error 'undefined name'
style: TextStyle(..........etcetera...................
如果有人可以幫助我展示如何做到這一點,我將不勝感激。
謝謝你。
當您聲明dpbme1
時,您是在 if 語句塊的范圍內這樣做的。 一旦該 if 語句結束,塊內聲明的任何變量都將超出范圍 - 這意味着名稱和值都不再定義。
如果您希望您的變量在 if 語句的范圍之外持續存在,您需要在它之前聲明它們,或者在 if 語句關閉之前返回小部件:
if (snapshot.hasData) {
// Your declarations here...
return SafeArea(
// Snip
);
}
您需要在分配變量的 if 語句中返回小部件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.