injectEpic

injectEpic() is used to create a Higher-Order Components that will inject the epic into the runtime.

The Epic stays in the runtime after component is unmounted.

Arguments

  1. epic (Epic): an epic to inject.

Returns

(Function): Higher-Order Components function

Example: Injecting an Epic in the Container Component

containers/Blog/index.js

import { injectEpic } from '@react-observatory/inject-epic'
import epic from './epics'
import Blog from './Blog'

const withEpic = injectEpic(epic)

export default withEpic(Blog)

Example: Injecting the Epic with Redux compose into connected Component

import { compose } from 'redux'
import { connect } from 'react-redux'
import { injectEpic } from '@react-observatory/inject-epic'
import Blog from './Blog'
import epic from './epics'

function mapStateToProps(state) {
  return {
    blog: state.blog,
  }
}

const mapDispatchToProps = { submitComment: () => ({ type: 'SubmitComment' }) }

const withConnect = connect(mapStateToProps, mapDispatchToProps)

const withEpic = injectEpic(epic)

export default compose(
  withEpic,
  withConnect
)(Blog)

Last updated