useSignalValue<T, S extends ReadonlySignal<T> > function
T
useSignalValue<T, S extends ReadonlySignal<T> >(})
Subscribes to an existing ReadonlySignal (or Signal) and returns its current value.
This is a convenience hook that is equivalent to invoking useExistingSignal(signal).value.
It triggers a rebuild of the host HookWidget whenever the signal's value changes.
Parameters
value: The existing ReadonlySignal or Signal instance to retrieve the value from and subscribe to.keys: A list of objects to watch for changes. If any key changes, the hook will be re-evaluated and subscribe to the new signal.
Returns
The current value T of the signal.
Example
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:signals_hooks/signals_hooks.dart';
final cartItemCountSignal = signal(0);
class CartBadge extends HookWidget {
const CartBadge({super.key});
@override
Widget build(BuildContext context) {
// Directly extract and subscribe to the signal's value
final itemCount = useSignalValue(cartItemCountSignal);
return Badge(
label: Text('$itemCount'),
child: const Icon(Icons.shopping_cart),
);
}
}
Implementation
T useSignalValue<T, S extends ReadonlySignal<T>>(
S value, {
/// A list of objects to watch for changes.
///
/// If any of the keys change, the hook will be re-evaluated.
List<Object?> keys = const <Object>[],
}) {
return useExistingSignal(value, keys: keys)();
}