Last active
August 23, 2017 05:34
-
-
Save milosdakic/07634834f572bee104dfcaf72fbcaf95 to your computer and use it in GitHub Desktop.
React Render Multiple Components using Rx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import render from './utils/render' | |
const map = [ | |
{ | |
node: '.root', | |
component: Component, | |
}, | |
] | |
render(map).subscribe(console.log('React rendered all components')) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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