[flutter] 플러터 Container에서 비동기 작업을 처리하는 방법은 무엇인가요?

FutureBuilder 위젯은 Future 객체를 기다리고, 해당 Future 객체가 완료되면 화면을 다시 그립니다. 이를 이용하여 Container 내부에서 비동기 작업의 결과를 화면에 표시할 수 있습니다.

아래는 FutureBuilder를 사용하여 비동기 작업을 처리하는 Container의 예시입니다.

Container(
  child: FutureBuilder<String>(
    future: fetchData(), // 비동기 작업을 수행할 함수 호출
    builder: (context, snapshot) {
      if (snapshot.connectionState == ConnectionState.done) {
        if (snapshot.hasError) {
          return Text('에러 발생: ${snapshot.error}');
        }
        return Text('데이터: ${snapshot.data}');
      } else {
        return CircularProgressIndicator(); // 데이터를 기다리는 동안 로딩 표시
      }
    },
  ),
)

Future<String> fetchData() async {
  await Future.delayed(Duration(seconds: 2));
  return '플러터 비동기 작업 예시';
}

이 코드는 Container 내부에 FutureBuilder를 통해 fetchData 함수를 호출하여 비동기 작업을 처리하고, 그 결과에 따라 화면을 표시합니다.