StreamProvider<T> class

Listens to a Stream<T> and exposes T to its descendants.

Its main use-case is to provide to a large number of a widget the content of a Stream, without caring about reacting to events.

A typical example would be to expose the battery level, or a Firebase query. Trying to use Stream to replace ChangeNotifier is outside of the scope of this class.

It is considered an error to pass a stream that can emit errors without providing a catchError method.

initialData determines the value exposed until the Stream emits a value. If omitted, defaults to null. updateShouldNotify can optionally be passed to avoid unnecessarily rebuilding dependents when nothing changed. Defaults to (previous, next) => previous != next. See InheritedWidget.updateShouldNotify for more information.

See also:

  • Stream, which is listened by StreamProvider.
  • StreamController, to create a Stream
Inheritance
Implemented types

Constructors

StreamProvider({Key key, @required ValueBuilder<Stream<T>> builder, T initialData, ErrorBuilder<T> catchError, UpdateShouldNotify<T> updateShouldNotify, Widget child })
Creates a Stream from builder and subscribes to it. [...]
StreamProvider.controller({Key key, @required ValueBuilder<StreamController<T>> builder, T initialData, ErrorBuilder<T> catchError, UpdateShouldNotify<T> updateShouldNotify, Widget child })
Creates a StreamController from builder and subscribes to its stream. [...]
StreamProvider.value({Key key, @required Stream<T> value, T initialData, ErrorBuilder<T> catchError, UpdateShouldNotify<T> updateShouldNotify, Widget child })
Listens to value and expose it to all of StreamProvider descendants.

Properties

catchError ErrorBuilder<T>
An optional function used whenever the Stream emits an error. [...]
final
child Widget
The widget that is below the current StreamProvider widget in the tree. [...]
final
initialData → T
initialData determines the value exposed until the Stream emits a value. If omitted, defaults to null.
final
updateShouldNotify UpdateShouldNotify<T>
updateShouldNotify can optionally be passed to avoid unnecessarily rebuilding dependents when nothing changed. Defaults to (previous, next) => previous != next. See InheritedWidget.updateShouldNotify for more information.
final
delegate ValueStateDelegate<Stream<T>>
The current state of DelegateWidget. [...]
@protected, read-only, inherited
hashCode → int
The hash code for this object.
read-only, inherited
key Key
Controls how one widget replaces another widget in the tree. [...]
final, inherited
runtimeType → Type
A representation of the runtime type of the object.
read-only, inherited

Methods

build(BuildContext context) Widget
Describes the part of the user interface represented by this widget. [...]
override
cloneWithChild(Widget child) StreamProvider<T>
Clones the current provider with a new child. [...]
override
createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree. [...]
inherited
createState() → _DelegateWidgetState
Creates the mutable state for this widget at a given location in the tree. [...]
inherited
debugDescribeChildren() → List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children. [...]
@protected, inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node. [...]
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
inherited
toDiagnosticsNode({String name, DiagnosticsTreeStyle style }) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep. [...]
inherited
toString({DiagnosticLevel minLevel: DiagnosticLevel.debug }) → String
Returns a string representation of this object.
inherited
toStringDeep({String prefixLineOne: '', String prefixOtherLines, DiagnosticLevel minLevel: DiagnosticLevel.debug }) → String
Returns a string representation of this node and its descendants. [...]
inherited
toStringShallow({String joiner: ', ', DiagnosticLevel minLevel: DiagnosticLevel.debug }) → String
Returns a one-line detailed description of the object. [...]
inherited
toStringShort() → String
A short, textual description of this widget.
inherited

Operators

operator ==(dynamic other) → bool
The equality operator.
inherited