ListSignal#
class & function |
Package: package:signals_core
Class: ListSignal#
A reactive Signal that holds a List and implements the List interface.
ListSignal lets you listen to changes on a list reactively and mutate it directly using
standard list operations (like add, addAll, remove, operators
[] and []=, etc.).
Any mutations automatically trigger reactive updates to all active listeners (e.g., inside an
effect or computed).
Additionally, ListSignal defines convenient operators:
<<injects/adds all items from an iterable into the list.-
&forks/concatenates the list with an iterable into a new ListSignal. -
|pipes/concatenates the list with another signal holding an iterable into a new ListSignal.
Example Usage#
import 'package:signals/signals.dart';
void main() {
final numbers = listSignal<int>([1, 2, 3]);
effect(() {
print('List content: $numbers, Length: ${numbers.length}');
}); // Prints: "List content: [1, 2, 3], Length: 3"
// Standard mutation (triggers updates)
numbers.add(4); // Prints: "List content: [1, 2, 3, 4], Length: 4"
// Update via index operator (triggers updates)
numbers[0] = 10; // Prints: "List content: [10, 2, 3, 4], Length: 4"
// Injection operator (triggers updates)
numbers << [5, 6]; // Prints: "List content: [10, 2, 3, 4, 5, 6], Length: 6"
}
numbers.value = ... manually!
Members of ListSignal#
| Member | Type | Signature | Description |
|---|---|---|---|
| ListSignal | constructor |
dart ListSignal(super.value, {ListSignalOptions
|
Creates a ListSignal with the given value. |
| << | method |
dart ListSignal |
Inject: Update current signal value with iterable |
| & | method |
dart ListSignal |
Fork: create a new signal which value is the concatenation of source signal and iterable parameter |
| ** | ** | method |
dart ListSignal |
| == | method |
dart bool ==(Object other) |
|
| hashCode | method |
dart int hashCode |
Function: listSignal#
ListSignal<T> listSignal(List<T> list, {ListSignalOptions<T>? options, @Deprecated('Use options: ListSignalOptions(autoDispose: ...) instead') bool? autoDispose, @Deprecated('Use options: ListSignalOptions(name: ...) instead') String? debugLabel})
Creates a ListSignal initialized with the provided list.
This is a convenience helper function for creating reactive list signals.
import 'package:signals/signals.dart';
final list = listSignal([1, 2, 3]);
References#
The ListSignal type is referenced and used in the following pages:
- Signal (signals_flutter/core)
- SignalsMixin (signals_flutter/mixins)
- IterableSignalMixin (signals_flutter/mixins)
- ListSignal (signals_flutter/value)
- IterableSignal (signals_flutter/value)
- signals_flutter
- Signal (signals_core/core)
- IterableSignalMixin (signals_core/mixins)
- ListSignal (signals_core/value)
- IterableSignal (signals_core/value)
- signals_core
- Signal (signals/core)
- SignalsMixin (signals/mixins)
- IterableSignalMixin (signals/mixins)
- ListSignal (signals/value)
- IterableSignal (signals/value)
- signals
- useListSignal (signals_hooks/hooks)