I am making a card game using React, and for some reason I am getting TypeError: Cannot read property 'img' of undefined.
The Code causing the error:
import React, { useState } from "react";
import Card from "./components/Card";
const App = () => {
const [cards, setCards] = useState([
{
name: "King",
img: "https://image.freepik.com/free-vector/king-crown-esport-logo-design_177315-269.jpg",
pts: 10000,
},
{
name: "Minister",
img: "https://i.pinimg.com/474x/51/59/b3/5159b321713edef6c6a3b8f930f667a1.jpg",
pts: 5000,
},
{
name: "Cop",
img: "https://image.shutterstock.com/image-vector/police-officer-badge-icon-vector-260nw-613493573.jpg",
pts: 100,
},
{
name: "Thief",
img: "https://images1.livehindustan.com/uploadimage/library/2019/05/03/16_9/16_9_1/thief_symbolic_photo__1556892712.jpg",
pts: 0,
},
]);
const [shuffledCards, setShuffledCards] = useState([]);
for (let i = 0; i < 4; i++) {
const randCard = cards[Math.floor(Math.random() * (cards.length + 1))];
setShuffledCards([...shuffledCards, randCard]);
setCards(cards.filter((c) => c !== randCard));
}
return (
<div style={{ display: "flex", flexDirection: "row" }}>\
{shuffledCards.map((c) => (
<Card img={c.img} name={c.name} pts={c.pts} />
))}
</div>
);
};
export default App;
The link to the project (online Gitpod.io) - https://purple-salmon-uy3kza3n.ws-us10.gitpod.io/?folder=vscode-remote%3A%2F%2Fsapphire-quokka-1i5clgk7.ws-us09.gitpod.io%3A443%2Fworkspace (caution it might change, some weird gitpod thing)
Now, when I printed the shuffledCards array in the for loop, after some loops I noticed an undefined object was getting added to the array. I think that's the problem, and I don't know why or how it's happening, and also how to fix it.
Looking forward to hearing from you guys. Thank you in Advance.