Comments (4)
That's a nice discussion. On distinctShareReplay, I also wondered the same thing. Is it really needed if people can use connectObservable
or connectFactoryObservable
and get the "distinctShareReplay"ed observable that can be used to build other streams?
What's the use case where distinctShareReplay would be useful for a consumer?
If we expose it, I like shareLatest
name, but I wouldn't make it apply distinctUntilChanged
. From a consumer PoV the useful bit of shareLatest
would be on how it shares the source stream - distinctUntilChanged can be added if needed.
from react-rxjs.
I've been thinking a lot about this and I think that I've finally realized what the issue is here. I will try to summarize it:
distinctShareReplay
should not be exposed. Further more, the internal one should not have thedistinctUntilChanged
behavior baked in it.connectObservable
andconnectFactoryObservable
should not take thecompareFn
option at all.- The internal
react-enhancer
can (and should) apply adistinctUntilChanged(Object.is)
in order to prevent unnecessaryReact.setState
calls. - An enhancer that we could name
shareLatest
could (and I think that should) be exposed. Its behavior would be the equivalent of:
const shareLatest = <T>() => (
source$: Observable<T>,
): Observable<T> =>
source$.pipe(
multicast(() => new ReplaySubject<T>(1)),
refCount(),
)
I'm working on that... I can't wait to get that done!
FTR: @voliva it was your comment that helped me see the light! Thanks a lot! Also, how do you feel about this stuff ^^
from react-rxjs.
Go for it, sounds good 🎉. The distinct part makes sense to only apply in the react hook.
from react-rxjs.
I'm closing this because I'm really happy with the latest alpha release. I will create separate issues for the other stuff. Also, I will try to make those issues more organized (and less chaotic).
from react-rxjs.
Related Issues (20)
- Uncaught Error: Missing Subscribe HOT 2
- Observable emitting error should not cause infinite loop on Subscribe HOT 1
- Question - Todo App Demo
- Testing a signal HOT 1
- Are there any projects that use React-RxJS?
- hook returned by bind(functionAcceptingArrayReturningAsyncObservable$) should not cause infinite render loop HOT 2
- takeUntil operator cannot complete a StateObservable HOT 1
- Server side rendering is missing `getServerSnapshot` HOT 2
- [BUG] bind is returning an array when an Object is passed through the observer. HOT 1
- Use native react use-sync-external-store instead of package HOT 2
- batchUpdates compatibilities HOT 3
- bind hook only firing once with scan and aggregated map HOT 3
- TypeScript moduleResolution: NodeNext expects core.es2017.d.ts types file
- Subscribe incorrectly rendering fallback on initial mount HOT 5
- NextJS 13 getServerSnapshot issue HOT 3
- Binding to observables that emit SUSPENSE with a default value does not trigger React.Suspense to render the `fallback` component HOT 1
- `<Subscribe>` without `source$` does not seem to work as advertised HOT 7
- "Inner" <Subscribe> is skipped in case of nested <Subscribe>s HOT 3
- Basic Todos Example no longer works as of utils version 0.9.7 HOT 4
- SSR and react-rxjs HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-rxjs.