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 .