Files
flutter_provider_demo/lib/pages/future_provider_page.dart
2025-02-17 21:26:52 +08:00

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);
}
}