Im trying to use my allData variable so i can use the data inside of it and show it in the return. Can someone help me on how can i use that variable inside of that fetchapi function outside of it.
that url (random-data-api) has an address, which i need to parse it somehow and print it in the return individually, im trying to use allData.address, also did fetchapi.allData.address. Im new in this, ive been doing research on how to do it, and i havent found something that helps
const fetchapi = async () => {
try {
setLoading(true); // Antes del fecth
await axios
.get("https://random-data-api.com/api/v2/addresses")
.then((response) => {
setLoading(false); // loading false luego de mostrar la data
const allData: Response = response.data;
console.log(allData);
});
} catch (error) {
setLoading(false); // loading false si sale un error
console.log(error);
}
return allData;
};
return (
<Fragment>
<div>
<button onClick={fetchapi}>Fetch Location</button>
{address ? null : (
<div
style={{
backgroundColor: "#c7c7c7",
display: "flex",
flexDirection: "column",
padding: 16,
margin: 5,
borderRadius: 20
}}
>
<p>
<strong>Address: {Adress here from the allData var}</strong>
</p>
<p>
<strong>City:{city here from the allData var}</strong>
</p>
<p>
<strong>Street Name:{...}</strong>
</p>
<p>
<strong>Zipcode:{...}</strong>
</p>
</div>
)}
</div>
</Fragment>
);
CodePudding user response:
You should declare a state for storing allData similar to how you did setLoading.
then you can store the response into state setAllData(response.data)
and use it in address field like allData.address
