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 to container instance 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 AppController {
  late final state = UseReducer(_reducer, Store(count: 0));

  AppController() {
    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;
  }
}
Inheritance

Constructors

UseReducer(Reducer<T> reducer, T initialState)
A ReactterHook that manages state using reducer method.

Properties

$ → _ReactterHookRegister
This variable is used to register ReactterHook and attach the ReactterState that are defined here.
final
hashCode int
The hash code for this object.
no setterinherited
instanceAttached Object?
no setterinherited
isDisposed bool
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

attachTo(Object instance) → void
Attaches an object instance to this state.
inherited
detachInstance() → void
Detaches an object instance to this state.
inherited
dispatch<A extends ReactterAction>(A action) → void
Receives a ReactterAction and sends it to reducer method for resolved
dispose() → void
Called when this object is removed
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
refresh() → void
It's used to notify listeners that the state has been updated. It is typically called after making changes to the state object.
inherited
toString() String
A string representation of this object.
inherited
update([covariant Function? callback]) → void
Executes callback, and notify the listeners about to update.
inherited

Operators

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