在較舊的 flutter sdk 版本上,下面的示例正在運行,但現在我有錯誤 引數型別“物件?” 不能分配給引數型別“串列”
FutureBuilder(
future: fetchEmp(),
builder: (context, snapshot) {
return snapshot.hasData
? RecommandEmp(emps: snapshot.data) ---Here is problem!!!
: Center(child: Image.asset('assets/images/no.png'));
},
),
class RecommandEmp extends StatefulWidget {
const RecommandEmp({Key? key, required this.emps}) : super(key: key);
final List<Emp> emps;
@override
_RecommandEmpState createState() => _RecommandEmpState();
}
fetchEmp
Future<List<Emp>> fetchEmp() async {
final response = await http.get(Uri.https(myUrl, 'select/emp'));
if (response.statusCode == 200) {
List<Emp> emp = (json.decode(utf8.decode(response.bodyBytes))["items"] as List)
.map((data) => Emp.fromJson(data))
.toList();
return emp;
} else {
throw Exception('Error!');
}
}
模型 --> https://ibb.co/zr7H8v2
uj5u.com熱心網友回復:
snapshot.dataObject除非您指定型別,否則默認情況下將始終為型別,這可以通過兩種不同的方式完成
首先如下
FutureBuilder<List<Emp>>(
future: fetchEmp(),
builder: (context, snapshot) {
return snapshot.hasData
? RecommandEmp(emps: snapshot!.data)
: Center(child: Image.asset('assets/images/no.png'));
},
),
或第二個(對于不太可能的情況,您不確定您的型別,即回傳動態):
FutureBuilder(
future: fetchEmp(),
builder: (context, snapshot) {
return snapshot.hasData && snapshot is List<Emp>
? RecommandEmp(emps: snapshot.data as List<Emp>)
: Center(child: Image.asset('assets/images/no.png'));
},
),
uj5u.com熱心網友回復:
該方法groupedTransactionValues正在回傳 Object 的映射。相反,回傳一個映射dynamic是運行時確定的型別。更改行:
List<Map<String, Object>> get groupedTransactionValues {
到:
List<Map<String, dynamic>> get groupedTransactionValues {
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/331003.html
