'Cannot read properties of undefined (reading 'name') / (reading 'location')
how to solve this error with 'Cannot read properties of undefined (reading 'name')' and the same with (reading 'location'), I don't understand.
Swagger : https://test-front.framework.team/api-docs/#/%2Flocations/locations
codesandbox: https://codesandbox.io/s/elem-1f5t5
I want the item blocks to be displayed correctly, with all the information I get from the API
import "./styles.css";
import { useEffect, useState } from "react";
const App = () => {
const baseURL = "https://test-front.framework.team/";
const [items, setItems] = useState([]);
const [authors, setAuthors] = useState([]);
const [locations, setLocations] = useState([]);
useEffect(() => {
fetch("https://test-front.framework.team/paintings")
.then((res) => res.json())
.then(
(result) => {
setIsLoaded(true);
setItems(result);
console.log("paintings");
}
);
fetch("https://test-front.framework.team/authors")
.then((res) => res.json())
.then(
(result) => {
setIsLoaded(true);
setAuthors(result);
console.log("authors");
}
);
fetch("https://test-front.framework.team/locations")
.then((res) => res.json())
.then(
(result) => {
setIsLoaded(true);
setLocations(result);
console.log("locations");
}
);
}, []);
const result = items.map((elem) => {
return {
author: authors.find((author) => author.id === elem.authorId).name,
created: elem.created,
id: elem.id,
imgUrl: elem.imgUrl,
location: locations.find((location) => location.id === elem.locationId)
.location,
name: elem.name
};
});
return (
<div className="App">
{result.map((elem) => (
<div key={elem.id} className={"item"}>
<img src={`${baseURL}${elem.imageUrl}`} />
<li className={"cardInfo"}>
<ul>{elem.name}</ul>
<ul> {elem.author}</ul>
<ul>{elem.created}</ul>
<ul>{elem.location}</ul>
</li>
</div>
))}
</div>
);
};
export default App;
Solution 1:[1]
There is an issue with getting the value for image element from items array to result. I have updated your code sandbox and all the required attributes are displaying correctly. Please verify.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Suresh Kumar Chinnappan |
