【发布时间】:2021-10-22 14:02:33
【问题描述】:
这是我的代码:
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
List<User> _users = <User>[];
List<User> _usersDisplay = <User>[];
@override
void initState() {
super.initState();
fetchUsers().then((value){
_users.addAll(value);
_usersDisplay = _users;
print(_usersDisplay.length);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Users List'),
),
body: SafeArea(
child: Container(
child: ListView.builder(
itemBuilder: (context, index) {
if (_usersDisplay.length > 0){
return UserTile(user: this._usersDisplay[index]);
}else{
return LoadingView();
}
},
itemCount: _usersDisplay.length + 1,
),
),
),
);
}
}
在执行 initStae() 时,它会将 _usersDisplay.length 打印为 100,但只返回 LoadingView()。它不显示 UserTile()。
在构建内部检查 _usersDisplay.length 时,它始终为 0。为什么?
我也无法以这种方式定义列表:
List<User> _users = List<User>();
【问题讨论】:
标签: json list flutter flutter-listview flutter-build