Description
For reference. We're exploring an alternative to the observe
function proposed in #3398.
Instead of having a separate function that defines a list of dependencies on Observables, we could allow the render function itself trigger a bunch of side-effects that registers the currently executing component with some Observables.
render() {
var data = request(this.props.url);
if (data === null) return <div>Loading...</div>;
return <div>{data}</div>;
}
Side-effects! 😲
The implementation of request wouldn't return an Observable. Instead it would tell React that the currently executing component has a dependency on this Observable and needs to rerender anytime the subscription fires. It returns the last value received by this particular Observable... somehow.
function request(url) {
return React.readAndSubscribe(Observable.fetch(url));
}
If an Observable is no longer subscribed to in the next render pass, it is automatically unsubscribed. Perhaps the Observable API is not ideal for this model.