Advice Generator App using React, SASS/SCSS, Axios and Advice Slip API
Design comparison
Solution retrospective
The bigest challenge here was to retrieve a new advice on each new click on the dice.
At first fetch
or axios
were not getting a new advice even though I was triggering a new request to the API url.
This was due to fetch
and axios
caching data.
To overcome this issue, the solution was to add a timestamp in the URL.
Overall I'm pretty happy of the outcome and it was also fun to great that glow effect when hovering the dice.
Hope you like this one!
I would be super grateful if you could follow me here or on Twitter @melwyncode
Thanks ❤️
Community feedback
- @ianmuchinaPosted over 2 years ago
Hello.
One solution is to get an advice slip using it's id. eg: Get advice 100 by going to
https://api.adviceslip.com/advice/100
Currently, the valid ids are those between 1 and 224.You can then generate a random number between 1 & 224 on the client side each time the button is clicked.
Here's an example with fetch
async function fetchRoll() { id = Math.floor(Math.random() * 224); // Get Remote Data let response = await fetch(`https://api.adviceslip.com/advice/${id}`); let data = await response.json(); // Update DOM adviceId.innerText = data.slip.id; adviceText.innerText = data.slip.advice; } // When dice button is clicked dice.onclick = fetchRoll;
0@melwyntPosted over 2 years ago@ianmuchina thanks for the feedback 🙌 The only issue I found about that one is if there is a new advice added. There was another solution to provide specific settings into Axios headers (no-cache) but it didn't work for me.
0
Please log in to post a comment
Log in with GitHubJoin our Discord community
Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!
Join our Discord