J'ai une question sur le passage des données json entre, j'ai là des composants PassTestData / ComA / ComB, les données sont importées dans PassTestData et je veux passer à ComA. Cependant, il y a un message d'erreur «TypeError: data.map n'est pas une fonction». Voici mes codes.
PassTestData
[
{
"A": "dataA",
"B": "dataB",
"C": "dataC",
"D": "dataD",
"E": "dataE"
},
{
"A": "dataA_2",
"B": "dataB_2",
"C": "dataC_2",
"D": "dataD_2",
"E": "dataE_2"
},
]
ComA
const ComB = props => {
const { A, B, C, D, E } = props;
return (
<tr>
<td>{A}</td>
<td>{B}</td>
<td>{C}</td>
<td>{D}</td>
<td>{E}</td>
</tr>
);
};
export default ComB ;
3 Réponses :
Définissez comme const data = props.data; ou const {data} = props;
const ComA = props => {
const data = props.data;
return (
<Card>
<CardTitle>
<EmailViewHeader />
</CardTitle>
<Table hover>
<thead>
<tr>
<th>
Title A
</th>
<th>
Title B
</th>
<th>
Title C
</th>
<th>
Title D
</th>
<th>
Title E
</th>
</tr>
</thead>
<tbody>
{data.map(row => (
<ComB
A={row.A}
B={row.B}
C={row.C}
D={row.D}
E={row.E}
/>
))}
</tbody>
</Table>
</Card>
);
};
@LoveCat si la réponse est utile pour vous, veuillez accepter / voter pour cela
Je n'ai pas assez de réputation, je vous en donnerai plus tard, merci beaucoup!
Convertissez votre json en objet et passez-le ensuite en accessoires. JSON est une chaîne et la fonction map n'y est pas définie.
const ComA = props => {
const data = props.data;
return (
....
);
};
export default ComA
Et dans le composant A, passez les données d'accessoires comme ceci.
Import data from â../data.jsonâ
const PassTestData = () => {
let _data = JSON.parse(data);
return (
<div>
< ComA date={_date} />
</div>
);};
Vous devez définir const data = props; comme:
const data = props.data;
OU
const { data } = props;
TypeError: data.map n'est pas une fonction est renvoyé car props est un objet et non un tableau.
Array.prototype.map attend un tableau.
p >
@LoveCat Heureux de vous aider! Veuillez accepter cette réponse si elle a résolu votre question. Instructions ici .