728x90
class FriendPage extends StatefulWidget {
const FriendPage({Key? key}) : super(key: key);
@override
State<FriendPage> createState() => _FriendPageState();
}
class _FriendPageState extends State<FriendPage> {
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: fetchPost(),
builder: (context, AsyncSnapshot snapshot) {
dynamic children;
if (snapshot.hasData) {
// children = const [Text("dfdfdf")];
children = ListView.builder(
itemCount: snapshot.data!.length,
itemBuilder: (context, int index) {
return Card(
child: ListTile(
title: Text(snapshot.data[index].userName),
leading: const Icon(Icons.account_circle_sharp),
));
},
);
} else if (snapshot.hasError) {
children = <Widget>[
const Icon(
Icons.error_outline,
color: Colors.red,
size: 60,
),
Padding(
padding: const EdgeInsets.only(top: 16),
child: Text('Error: ${snapshot.error}'),
)
];
} else {
children = const <Widget>[
SizedBox(
width: 60,
height: 60,
child: CircularProgressIndicator(),
),
Padding(
padding: EdgeInsets.only(top: 16),
child: Text('Awaiting result...'),
)
];
}
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: children,
));
});
문제 상황
요청 데이터가 도착하면 ListView.builder로 각 데이터를 ListTile로 만들어 보여주려고 했으나 아래 에러 발생
문제 원인
snapshot.hasError나 요청중인 상황에서는 <Widget>[사이즈드박스, 패딩] 등을 보여주게 설정했는데, snapshot.hasdata에서는 혼자 다른 타입의 데이터를 보여주고 있었음. 개수도 달랐음. (다른 건 children인데 얘만 child)
해결 방법
else if와 else의 경우에도 단일 위젯을 보여주게끔 했더니 해결!
728x90
'코딩코딩 > 웹개발' 카테고리의 다른 글
node pre-commit 훅 설정하는데 참고한 글들 (0) | 2022.07.07 |
---|---|
[nodejs, npm] npm install이 너무 느릴 때 (0) | 2022.03.25 |
[flutter] flutter socketexception os error connection refused errno = 111 (0) | 2022.03.24 |
[postgresql] docker-compose에서 지정하는 환경변수 목록 (0) | 2022.03.24 |
[DB, Docker] 2003, Can't connect to MySQL server on 'localhost' (0) | 2021.12.25 |
댓글