gpt4 book ai didi

flutter - 参数类型 'Object?' 无法分配给参数类型 'List'

转载 作者:行者123 更新时间:2023-12-02 18:29:12 24 4
gpt4 key购买 nike

在旧的 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();
}

获取Emp

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

最佳答案

snapshot.data 将始终默认为 Object 类型,除非您指定类型,这可以通过两种不同的方式完成

首先如下

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'));
},
),

关于flutter - 参数类型 'Object?' 无法分配给参数类型 'List',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69660801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com