observe<S, ObservedState, A> static method

WithStore<ObservedState, A> observe<S, ObservedState, A>({
  1. required Store<S, A> store,
  2. required ObservedState observe(
    1. S state
    ),
  3. required Widget builder(
    1. ObservedState state,
    2. void send(
      1. A action
      ),
    3. BuildContext context
    ),
  4. bool isEqual(
    1. ObservedState previous,
    2. ObservedState current
    ) = IsEqualUtils.stateAreEquals,
  5. Key? key,
})

Creates a WithStore that projects state via observe before building.

The widget only rebuilds when the observed (projected) value changes, not when unrelated parts of the global state change.

WithStore.observe(
  store: appStore,
  observe: (state) => state.username,
  builder: (username, send, context) => Text(username),
);

Implementation

static WithStore<ObservedState, A> observe<S, ObservedState, A>({
  required Store<S, A> store,
  required ObservedState Function(S state) observe,
  required Widget Function(ObservedState state, void Function(A action) send, BuildContext context) builder,
  bool Function(ObservedState previous, ObservedState current) isEqual = IsEqualUtils.stateAreEquals,
  Key? key,
}) =>
    WithStore(
      key: key,
      store: store.scopeState(toLocalState: observe),
      builder: builder,
      isEqual: isEqual,
    );