I've been fighting with this issue for a while now.
Because the CoinGecko API has a limited number of requests per second, I tried switching to a different API provider. Unfortunately, that turned out to be even worse. It didn't provide all the global market data I needed, and I ended up having to write a lot more code just to fetch things like currency images. 😒
At one point, I got so annoyed that I felt like giving up on the project altogether.
In the end, I went back to CoinGecko and reverted to my original setup. The problem is that if a user selects multiple currencies from the dropdown too quickly, without waiting a few seconds between selections, the app can hit the rate limit and fail to fetch the coin data.
I've seen another project in this community that also uses CoinGecko, but it doesn't seem to have this limitation. I'm curious how they handled it. I considered upgrading to a paid plan, but it's ridiculously expensive for a personal project.
Oh, and I also had to re-route all the project as it got more and more confusing.