Flutter动态更TabController数量提示LateInitializationError: Fieldtabcontroller' has not beeninitialized.
需求:Flutter请求完成数据后动态改变TabController数量
但是Flutter动态更TabController数量提示LateInitializationError: Fieldtabcontroller' has not beeninitialized.
错误代码如下:
late TabController tabcontroller;
void onInit() async{
super.onInit();
//顶部tabs请求
await getColumData();
}
getColumData() async{
var response = await httpsClient.get("api/getColumns?sid=1&cid=2");
if(response!=null){
var focus = ColumModel.fromJson(response.data);
//赋值
tabList.value = focus.columns!;
tabcontroller = TabController(vsync: this, length: tabList.length);
//刷新数据列
update();
}
}
解决方法:
仅在initState中创建一次TabController,假装TabController length只是最大长度,如果您认为自己的应用最大数量为100,请使用固定的100。 改造后的代码
late TabController tabcontroller;
void onInit() async{
super.onInit();
tabcontroller = TabController(vsync: this, length: 100);
//顶部tabs请求
await getColumData();
}
getColumData() async{
var response = await httpsClient.get("api/getColumns?sid=1&cid=2");
if(response!=null){
var focus = ColumModel.fromJson(response.data);
//赋值
tabList.value = focus.columns!;
//刷新数据列
update();
}
}
更多关于Flutter动态更TabController数量提示LateInitializationError: Fieldtabcontroller' has not beeninitialized.的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html