useFuture<T> function
Creates a reactive signal that tracks the state of a Future.
This hook provides an AsyncSnapshot that updates automatically as the Future progresses through its lifecycle. The behavior matches FutureBuilder.
Parameters:
future: The Future to track, can be nullinitialData: Optional initial data to use before the Future completes
Example:
final future = Future.delayed(Duration(seconds: 1), () => 42);
final snapshot = useFuture(future);
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
} else {
return Text('Data: ${snapshot.data}');
}
Implementation
AsyncSnapshotFutureSignal<T> useFuture<T>(Future<T>? future, {T? initialData}) {
return useAutoDispose<_AsyncSnapshotFutureSignalImpl<T>>(() {
final signal = _AsyncSnapshotFutureSignalImpl<T>(
future,
initialData: initialData,
);
return signal;
});
}