PersistentContext class Null safety

Provides persistent data from shared preferences to all the descending widgets and allows to update it synchronously.

Variables are read and written as simple key-values pairs, where the key is a generic String and the value has any of the following: String, int, double, bool.

For a more robust implementation it is reccomended that you extend this class and add getters and setters for variable, as needed by your application.



PersistentContext({Key? key, required Widget child, Map<String, dynamic> defaultValues = const {}, String prefix = '', SharedPreferences? sharedPreferencesInstance})
Creates a widget that provides persistent data from shared preferences to all the descending widgets and allows to update it synchronously.


child Widget
The widget below this widget in the tree.
defaultValues Map<String, dynamic>
A map of default values for each variable
hashCode int
The hash code for this object.
key Key?
Controls how one widget replaces another widget in the tree.
notifier PersistentContextNotifier?
The Listenable object to which to listen.
prefix String
A prefix for local preferences names, that can be used to have variables with the same name in different contexts of the same app
ready Future<bool>
A future that completes with true when shared preferences are loaded and ready to be used. It will imediately complete if the optional SharedPreferences instance is passed to the constructor.
runtimeType Type
A representation of the runtime type of the object.


createElement() InheritedElement
Inflates this configuration to a concrete instance.
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
get(String key) → dynamic
Gets a persistent record value given its key.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
set(String key, dynamic value) → void
Sets a persistent record given a key and value.
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
toString({DiagnosticLevel minLevel =}) String
A string representation of this object.
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a string representation of this node and its descendants.
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
toStringShort() String
A short, textual description of this widget.
updateShouldNotify(covariant InheritedNotifier<PersistentContextNotifier> oldWidget) bool
Whether the framework should notify widgets that inherit from this widget.


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

Static Methods

of(BuildContext context) PersistentContext
The PersistentContext instance for the given BuildContext