import * as React from 'react' import {distinctUntilChanged, map, switchMap} from 'rxjs/operators' import {withPropsStream} from '../../withPropsStream' const FetchComponent: React.ComponentType<{url: string}> = withPropsStream( props$ => props$.pipe( map(props => props.url), distinctUntilChanged(), switchMap(url => fetch(url).then(response => response.text())), map(responseText => ({responseText})) ), props =>
The result was: {props.responseText}
) const URLS = ['/fetch/a.txt', '/fetch/b.txt'] export class FetchExample extends React.Component { state = {currentUrl: ''} render() { const {currentUrl} = this.state return (

{URLS.map(url => ( ))}

{currentUrl ? : 'Click on url to fetch'}
) } }