UseReducer<T> class

A ReactterHook that manages state using reducer method.

UseReducer accepts a reducer method and returns the current state paired with a dispatch method. (If you’re familiar with Redux, you already know how this works.)

Contains a value of type T which represents the current state.

When value is different to previous state, UseReducer execute update to notify context of ReactterContext that has changed and in turn executes onWillUpdate and onDidUpdate.

Example:

class Store {
  final int count;

  Store({this.count = 0});
}

 Store _reducer(Store state, ReactterAction<String, int?> action) {
   switch (action.type) {
     case 'increment':
       return Store(count: state.count + (action.payload ?? 1));
     case 'decrement':
       return Store(count: state.count + (action.payload ?? 1));
     default:
       throw UnimplementedError();
   }
 }

class AppContext extends ReactterContext {
  late final state = UseReducer(_reducer, Store(count: 0), this);

  AppContext() {
    print("count: ${state.value.count}"); // count: 0;
    state.dispatch(ReactterAction(type: 'increment', payload: 2));
    print("count: ${state.value.count}"); // count: 2;
    state.dispatch(ReactterAction(type: 'decrement'));
    print("count: ${state.value.count}"); // count: 1;
  }
}

See also:

Inheritance

Constructors

UseReducer(Reducer<T> reducer, T initialState, [ReactterHookManager? context])

Properties

hashCode int
The hash code for this object.
no setterinherited
reducer Reducer<T>
Calculates a new state with state(T) and action(ReactterAction) given.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
value → T
no setter

Methods

dispatch<A extends ReactterAction>(A action) → dynamic
Receives a ReactterAction and sends it to reducer method for resolved
listenHooks(List<ReactterHook> hooks) → void
Suscribes to all hooks given.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited
update([Function? callback]) → void
First, invokes the subscribers callbacks of the willUpdate event.
inherited

Operators

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