Hello, I want to call my messages API: http://localhost:1337/api/users/1?populate=messages but I got all the time this error: I can call the API in postman but not in the frontend
This topic has been created from a Discord post (1244539535338242099) to give it more visibility.
It will be on Read-Only mode here.
Join the conversation on Discord
const ChatOverview = () => {
const [messageData, setMessageData] = useState<any>(); // Set initial value as an empty array
const [userData, setUserData] = useState(null);
const fetchUserData = async () => {
try {
const response: any = await apiService.get(“/users/1”);
if (response?.error) {
throw response?.error;
} else {
setUserData(response.data);
}
} catch (error) {
console.error(error);
}
};
const fetchUserMessages = async () => {
try {
if (!userData || !userData.id) {
return;
}
const response: any = await apiService.get(
`/users/${messageData.id}/?populate=messages`
);
if (response?.error) {
throw response?.error;
} else {
console.log(response.data);
setMessageData(response.data);
}
} catch (error) {
console.error(error);
}
};
useEffect(() => {
fetchUserData();
}, );
useEffect(() => {
if (userData && userData.id) {
fetchUserMessages();
}
}, [userData]);
return (
<Box sx={{ overflow: “hidden” }}>
{/* Messages */}
<List sx={{ flex: 1, overflow: "auto" }}>
{messageData.map((message) => (
<ListItem key={message.id}>
{/* Display the user and content of the message */}
<Avatar
alt={message.user.username}
src={message.user.avatar_url}
/>
<ListItemText
primary={message.user.username}
secondary={message.content}
/>
</ListItem>
))}
</List>
</Box>
</ThemeProvider>
);
};
export default ChatOverview;
Looks like a typescript error
You must properly type your constants, parameters etc if you’re using Typescript
If you don’t want to; just use .jsx