Notwithstanding Precautions, Misadventure

    redux-store-observer

    1.0.0 • Public • Published

    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

    import { createStore, applyMiddleware, compose } from 'redux';
    import createStoreObserver from 'redux-store-observer';
     
    // Create your app's store in the usual way.
    const store = applyMiddleware(/* your middleware */)(createStore)(reducer);
     
    // Export a storeObserver for your app's store.
    export const storeObserver = createStoreObserver(store);

    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

    import { storeObserver } from './index';
     
    export function reticulateSplines() {
      // Get notified when `store.isFinished === true`
      const unsubscribe = storeObserver.once(
        getState => getState().isFinished === true,
        () => console.log('Something else finished!');
      );
    }

    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.

    Install

    npm i redux-store-observer

    DownloadsWeekly Downloads

    146

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • jonnyreeves