Storage class Null safety

The type used by the Window.localStorage and Window.sessionStorage properties. Storage is implemented as a Map<String, String>.

To store and get values, use Dart's built-in map syntax:

window.localStorage['key1'] = 'val1';
window.localStorage['key2'] = 'val2';
window.localStorage['key3'] = 'val3';
assert(window.localStorage['key3'] == 'val3');

You can use Map APIs such as containsValue(), clear(), and length:

assert(window.localStorage.containsValue('does not exist') == false);
window.localStorage.clear();
assert(window.localStorage.length == 0);

For more examples of using this API, see localstorage_test.dart. For details on using the Map API, see the Maps section of the library tour.

Mixed in types
Annotations
  • @Unstable()
  • @Native("Storage")

Properties

entries Iterable<MapEntry<String, String>>
The map entries of this.
read-only, inherited
hashCode int
The hash code for this object. [...]
read-only, inherited
isEmpty bool
Returns true if there is no key/value pair in the map.
read-only, override
isNotEmpty bool
Returns true if there is at least one key/value pair in the map.
read-only, override
keys Iterable<String>
The keys of this. [...]
read-only, override
length int
The number of key/value pairs in the map.
read-only, override
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
values Iterable<String>
The values of this. [...]
read-only, override

Methods

addAll(Map<String, String> other) → void
Adds all key/value pairs of other to this map. [...]
override
addEntries(Iterable<MapEntry<String, String>> newEntries) → void
Adds all key/value pairs of newEntries to this map. [...]
inherited
cast<RK, RV>() Map<RK, RV>
Provides a view of this map as having RK keys and RV instances, if necessary. [...]
inherited
clear() → void
Removes all pairs from the map. [...]
override
containsKey(Object? key) bool
Returns true if this map contains the given key. [...]
override
containsValue(Object? value) bool
Returns true if this map contains the given value. [...]
override
forEach(void f(String key, String value)) → void
Applies f to each key/value pair of the map. [...]
override
map<K2, V2>(MapEntry<K2, V2> transform(String key, String value)) Map<K2, V2>
Returns a new map where all entries of this map are transformed by the given f function.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
putIfAbsent(String key, String ifAbsent()) String
Look up the value of key, or add a new value if it isn't there. [...]
override
remove(Object? key) String?
Removes key and its associated value, if present, from the map. [...]
override
removeWhere(bool test(String key, String value)) → void
Removes all entries of this map that satisfy the given predicate.
inherited
toString() String
Returns a string representation of this object.
inherited
update(String key, String update(String value), {String ifAbsent()}) String
Updates the value for the provided key. [...]
inherited
updateAll(String update(String key, String value)) → void
Updates all values. [...]
inherited

Operators

operator ==(Object other) bool
The equality operator. [...]
inherited
operator [](Object? key) String?
Returns the value for the given key or null if key is not in the map. [...]
override
operator []=(String key, String value) → void
Associates the key with the given value. [...]
override