ReactiveNotifier<T> class

A reactive state management solution that supports:

  • Singleton instances with key-based identity
  • Related states management
  • Circular reference detection
  • Notification overflow detection
  • Detailed debug logging
Inheritance

Constructors

ReactiveNotifier(T create(), {List<ReactiveNotifier>? related, Key? key, bool autoDispose = false})
Creates or returns existing instance of ReactiveNotifier
factory

Properties

activeReferences Set<String>
Get active references (for debugging)
no setter
autoDispose bool
final
hashCode int
The hash code for this object.
no setterinherited
hasListeners bool
Whether any listeners are currently registered.
no setterinherited
isRecreating bool
Check if recreate() is currently in progress
no setter
isScheduledForDispose bool
Check if instance is scheduled for dispose
no setter
keyNotifier Key
final
notifier → T
no setterinherited
parents Set<ReactiveNotifier>
Gets the parent notifiers for testing purposes
no setter
referenceCount int
Get current reference count (for debugging)
no setter
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
inherited
addReference(String referenceId) → void
Widget-aware lifecycle management methods Increment reference count when a widget starts using this notifier
cleanCurrentNotifier({bool forceCleanup = false}) bool
Attempts to remove the current instance from the global registry if it's not being used.
dispose() → void
Discards any resources used by the object. After this is called, the object is not in a usable state and should be discarded (calls to addListener will throw after the object is disposed).
enableAutoDispose({Duration? timeout}) → void
Configure auto-dispose timeout for this instance
from<R>([Key? key]) → R
Gets a related state by type
getStateByKey<R>(Key key) → R?
listen(void value(T data)) → T
Starts listening for changes in the ViewModel.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyListeners() → void
Call all the registered listeners.
inherited
recreate() → T
Recreates the notifier instance with a fresh state using the original factory function.
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes.
inherited
removeReference(String referenceId) → void
Decrement reference count when a widget stops using this notifier
replaceNotifier(T newNotifier) → void
Replace the internal notifier with a new instance Used by reinitializeInstance to update the internal state
stopListening() → void
Stops listening for changes in the ViewModel.
inherited
toString() String
A string representation of this object.
transformState(T data(T data)) → void
transformStateSilently(T transform(T data)) → void
updateSilently(T newState) → void
updateSilently Updates the value silently without notifying listeners.
updateState(T newState) → void
updateState Updates the state and notifies listeners if the value has changed.

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

getInstances List<ReactiveNotifier>
no setter
instanceCount int
no setter

Static Methods

cleanup() → void
Utility methods
cleanupByType<T>() int
Removes all instances of a specific type from the global registry.
cleanupInstance(Key key) bool
Removes a specific instance from the global registry by its key.
getInstanceByKey<T>(Key key) ReactiveNotifier<T>
initContext(BuildContext context) → void
Initialize global BuildContext for all ViewModels
instanceCountByType<S>() int
isInstanceActive<T>(Key key) bool
Check if an instance with the given key is active (not disposed)
reinitializeInstance<T>(Key key, T creator()) → T
Static methods for instance management Reinitialize a disposed instance with a fresh state