我正在嘗試學習 Flutter(作為一個沒有很多編程背景的人)并且在一個教程中剛剛學會了如何匯入英文 Words 包。
我嘗試使用如下所示的示例代碼:https://pub.dev/packages/english_words。
我收到的錯誤是:此運算式的型別為 void,因此無法使用其值。正是這一行:nouns.take(50).forEach(print);給出了錯誤。
這是代碼:
import 'package:flutter/material.dart';
import 'package:english_words/english_words.dart';
void main() {
home: Scaffold(
body: SafeArea(
child: Center(
child: Container(
child: Text(
nouns.take(50).forEach(print);
),
),
),
),
);
}
感謝您提供任何線索。
uj5u.com熱心網友回復:
flutter 中的所有內容都是 Widget 和Text,用作 Container 小部件的子項。
我收到的錯誤是:此運算式的型別為 void,因此無法使用其值。這是一行: nouns.take(50).forEach(print); 這給出了錯誤。
行:nouns.take(50).forEach(print),實際上回傳 50 個最常用名詞的串列并列印它們。在 Dart & Flutter 中print是一個回傳 void 的函式。void沒有任何意義。所以該行nouns.take(50).forEach(print)實際上只回傳Text Widget要求String以便在螢屏上顯示。
uj5u.com熱心網友回復:
發生錯誤是因為nouns回傳 aList<String>并且foreach是一個void方法,它不回傳任何內容。但是你Text需要一個字串。如果要顯示所有名詞,請使用 ListView。下面是一個小例子。
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final List<String> words = nouns.take(50).toList();
return MaterialApp(
home: Scaffold(
body: ListView.builder(
itemBuilder: (context, index) => Text(words[index]),
itemCount: words.length,
),
),
);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/374337.html
上一篇:錯誤:無法分配給最終變數“顏色”。斷言(顏色=空||裝飾==空,^^^^^
下一篇:lib/answer.dart:16:20:錯誤:無法將引數型別“Function”分配給引數型別“voidFunction()?”
