40 lines
1004 B
Dart
40 lines
1004 B
Dart
import 'package:flutter/material.dart';
|
|
import 'package:provider/provider.dart';
|
|
|
|
class FutureProviderPage extends StatelessWidget {
|
|
const FutureProviderPage({super.key});
|
|
|
|
Future<String> fetchData() async {
|
|
await Future.delayed(const Duration(seconds: 2));
|
|
throw Exception('Failed to load data'); // Simulate an error
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return FutureProvider<String>(
|
|
initialData: 'Loading...',
|
|
create: (_) => fetchData().catchError((error) {
|
|
return 'Error: ${error.toString()}';
|
|
}),
|
|
child: Scaffold(
|
|
appBar: AppBar(
|
|
title: const Text('FutureProvider Example'),
|
|
),
|
|
body: const Center(
|
|
child: DataDisplay(),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
class DataDisplay extends StatelessWidget {
|
|
const DataDisplay({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final data = context.watch<String>();
|
|
print('DataDisplay: $data');
|
|
return Text(data);
|
|
}
|
|
} |