redux-store-observer
Respond to Redux Store Stage Changes
Inspired by @gaearon's comment on rackt/redux#303:
If you don't want to use RX and prefer a callback... again easy to do.
redux-store-observer
provides a thin wrapper around Redux's store#subscribe()
to allow you to respond to state changes.
Usage
After you've created your store, create a new storeObserver instance by invoking createStoreObserver(store)
.
index.js
;; // Create your app's store in the usual way.const store = createStorereducer; // Export a storeObserver for your app's store.const storeObserver = ;
You can now import the exported storeObserver
from anywhere else in your project where you want to observe store changes (eg: thunk'd action creators, or middleware):
actions.js
; { // Get notified when `store.isFinished === true` const unsubscribe = storeObserver;}
API
createStoreObserver(store)
createStoreObserver
creates and returns a new storeObserver instance which observes the supplied store instance.
storeObserver#on(predicate, callback)
on
will invoke the supplied callback
function each time the supplied predicate
function returns true in response to store changes. Use the predicate to determine when the callback is fired. The predicate is invoked with store's getState
function. An unsubscribe
function is returned which can be used to prevent further callbacks.
storeObserver#once(predicate, callback)
once
will invoke the supplied callback once, and only once when the supplied predicate function returns true in response to store changes. The predicate is invoked with store's getState
function. An unsubscribe
function is returned which can be used to prevent further callbacks.