Enhancer and handler for dynamically running sagas.
Include dynamic enhancer with redux-dynostore
:
import dynostore from '@redux-dynostore/core'
import { dynamicSagas } from '@redux-dynostore/redux-saga'
const sagaMiddlware = createSagaMiddleware()
const store = createStore(reducer, compose(
applyMiddleware(sagaMiddlware),
dynostore(dynamicSagas(sagaMiddlware))
)
Run the saga when the dynamic
component mounts:
import dynamic from '@redux-dynostore/react-redux'
import { runSaga } from '@redux-dynostore/redux-saga'
export default dynamic('identifier', runSaga(mySaga))(MyComponent)
If you aren't using react, or want to run a saga outside of the component lifecycle, the store now has an runSagas
function that can be used to run sagas if you only have access to the store:
store.runSagas({ dynamicSaga })
Multiple sagas can be run as well:
store.runSagas({ dynamicSaga1, dynamicSaga2 })
Sagas can also be provided in a nested structure, but this only provides simplified identifier creation:
store.attachReducers({ 'some/path/to': dynamicSaga })
store.attachReducers({
some: {
path: {
to: {
dynamicSaga
}
}
}
})
Both the above examples are equivalent to calling:
store.attachReducers({ 'some.path.to': dynamicSaga })