这是我的代码:
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 :
List<User> _users = List<User>();