Skip to content

Instantly share code, notes, and snippets.

@derekr
Created February 19, 2016 22:34
Show Gist options
  • Select an option

  • Save derekr/b8c849fdd8ed0611be2e to your computer and use it in GitHub Desktop.

Select an option

Save derekr/b8c849fdd8ed0611be2e to your computer and use it in GitHub Desktop.

/containers/App.jsx

import { Provider } from 'react-redux'

import Widget, { createStore as widgetStore } from 'components/Widget'
import Something, { createStore as somethingStore } from 'components/Something'

export default () => {
    onComponentDidMount() {
        this.setState({
            stores: {
                widget: widgetStore(),
                something: somethingStore()
            }
        })
    },
    
    return (<div>
        <Provider store={ this.state.stores.widget } />
            <Widget />
        </Provider>

        <Provider store={ this.state.stores.something } />
            <Something />
        </Provider>
    </div>)
}

/connect-widget.js ?

export default (widgets, component) => {
    // return new component that abstracts boilerplate of setting state for widget stores
}

/components/Widget/index.jsx

import configureStore from './configure-store'

export const createStore = (config) => {
    // config things as needed? like providing hooks for outside actions?
    return configureStore()
}

export default Widget
@derekr

derekr commented Feb 19, 2016

Copy link
Copy Markdown
Author

Yeah I like the idea of store on demand + name spacing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment