Basically I’m doing it wothout Arrow function to map all the data to Card Component but Im unable to map data to child component, but console log & manually is showing the data but not when I’m mapping.
I want to do thing without Arrow function
Please tell me what I’m doing wrong.
App Component render at index.js
import React from "react";
import CardComp from "./card.js";
import sdata from "./sdata";
sdata.map(App);
function App(val){
// console.log(data)
return(
<>
{console.log(val.first_name)}
<CardComp src="https://picsum.photos/200/300"
title={val.id}
text={val.email}
bttext={val.gender}
/>
</>
)
}
export default App;
Card Component
import React from 'react'
import Button from 'react-bootstrap/Button';
import Card from 'react-bootstrap/Card';
function CardComp(props) {
return (
<Card style={{ width: '18rem' }}>
<Card.Img variant="top" src={props.src} />
<Card.Body>
<Card.Title>{props.title}</Card.Title>
<Card.Text>
{props.text}
</Card.Text>
<Button variant="primary">{props.bttext}</Button>
</Card.Body>
</Card>
)
}
export default CardComp;
raw Jason Data Array
const data = [{
"id": 1,
"first_name": "Andriana",
"last_name": "Goodale",
"email": "agoodale0@nsw.gov.au",
"gender": "Female",
"ip_address": "82.200.197.74"
}, {
"id": 2,
"first_name": "Coralie",
"last_name": "Aisman",
"email": "caisman1@mtv.com",
"gender": "Female",
"ip_address": "214.55.245.199"
}, {
"id": 3,
"first_name": "Allan",
"last_name": "Armatage",
"email": "aarmatage2@army.mil",
"gender": "Male",
"ip_address": "181.180.166.43"
}
Advertisement
Answer
You can move the mapping of data inside the component without using arrow function as:
function App(val) {
return (
<>
{sdata.map(function (val) {
return (
<CardComp
src="https://picsum.photos/200/300"
title={val.id}
text={val.email}
bttext={val.gender}
/>
);
})}
</>
);
}