현재 위젯트리를 보면 FutureBuilder안에 ListView.builder가 있는데 이게 보기 싫으면 extract해서 별도의 메소드로 작성하면 된다.
code action을 사용해서 extract Widget을 하면 알아서 만들어줌
body: FutureBuilder(
future: webtoons, // await효과
builder: (context, snapshot) {
//snapshot으로 future의 상태를 알 수있다. 오류인지, 값을 받았는지
if (snapshot.hasData) {
return makeList(snapshot);
}
return const Center(
child: CircularProgressIndicator(),
);
},
),
ListView makeList(AsyncSnapshot<List<WebtoonModel>> snapshot) {
return ListView.separated(
itemBuilder: (context, index) {
var webtoon = snapshot.data![index];
return Text(webtoon.title);
},
scrollDirection: Axis.horizontal,
itemCount: snapshot.data!.length,
separatorBuilder: (context, index) => const SizedBox(
width: 20,
),
);
}
}
스냅샷도 파라미터로 알아서 빼주네용.