Comments (3)
Thanks for your quick answer!
It does make sense and made it clearer to me!
The issue can be closed.
Thank you :)
from react-rxjs.
Oooh, of course right after creating this issue, I had the idea that the mutability of the map might be the problem.
So with this:
scan((map, b) => {
return {...map, [String(b)]: b};
}, {})),
It works!
It kinda makes sense..
I'm not super happy creating a new map on every event though .. is there another way, or am I approaching this completely wrong?
from react-rxjs.
Yes, this is not something that React-RxJS does, but it comes from React itself.
Try this sandbox -> https://stackblitz.com/edit/react-ts-dwqy2x?file=App.tsx,index.tsx
export default function App() {
const [values, setValues] = useState([]);
return (
<div>
<button
onClick={() =>
setValues((v) => {
v.push(Math.random());
return v;
})
}
>
Add
</button>
{values.map((v, i) => (
<div key={i}>{v}</div>
))}
</div>
);
}
If you click Add
, nothing really happens. The values are being added to the array, but React detects it's the same array referentially, so it won't update the component. If you recreate a new array inside setValues
, then it will start working.
The observables do create a new emission, so you can still use them to compose other state (as long as you keep it in mind... Operators like distinctUntilChanged
, pairwise
, etc. won't work as expected). Something I sometimes do is only recreate the map/set/array at the very bottom of the state tree, right before using it in the react components.
from react-rxjs.
Related Issues (20)
- Incompatible with tsx HOT 3
- Typescript integration issues HOT 2
- doc: The link to bundlephobia is an old package HOT 1
- <Subscribe> not working HOT 1
- Uncaught Error: Missing Subscribe
- Proposal to support event handlers HOT 1
- 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
- TypeScript moduleResolution: NodeNext expects core.es2017.d.ts types file
- Subscribe incorrectly rendering fallback on initial mount HOT 5
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.