Skip to content

Instantly share code, notes, and snippets.

@milosdakic
Last active August 23, 2017 05:34
Show Gist options
  • Save milosdakic/07634834f572bee104dfcaf72fbcaf95 to your computer and use it in GitHub Desktop.
Save milosdakic/07634834f572bee104dfcaf72fbcaf95 to your computer and use it in GitHub Desktop.
React Render Multiple Components using Rx
import render from './utils/render'
const map = [
{
node: '.root',
component: Component,
},
]
render(map).subscribe(console.log('React rendered all components'))
import React from 'react'
import ReactDOM from 'react-dom'
import Rx from 'rx-lite'
/**
* const map = [
* {
* node: '.selector',
* component: ComponentProvider
* },
* ]
*/
export default (map) =>
Rx.Observable.from(map)
.filter((item) => document.querySelector(item.node))
.flatMap((item) =>
Rx.Observable.from(document.querySelectorAll(item.node))
.map((node) => ({ node, component: item.component }))
)
.do((item) => ReactDOM.render(React.createElement(item.component), item.node))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment