Comment mapper un tableau d'objets de Réagir
J'ai un tableau d'objets. Je voudrais une carte ce tableau d'objets. Je sais comment faire la carte d'un tableau, mais ne peuvent pas comprendre comment mapper un tableau d'objets. Voici ce que j'ai fait jusqu'à présent :
Le tableau d'objets que je veux à la carte :
const theData = [
{
name: 'Sam',
email: '[email protected]'
},
{
name: 'Ash',
email: '[email protected]'
}
]
Mon composant :
class ContactData extends Component {
render() {
//works for array
const renData = this.props.dataA.map((data, idx) => {
return <p key={idx}>{data}</p>
});
//doesn't work for array of objects
const renObjData = this.props.data.map(function(data, idx) {
return <p key={idx}>{data}</p>
});
return (
<div>
//works
{rennData}
<p>object</p>
//doesn't work
{renObjData}
</div>
)
}
}
ContactData.PropTypes = {
data: PropTypes.arrayOf(
PropTypes.obj
),
dataA: PropTypes.array
}
ContactData.defaultProps = {
data: theData,
dataA: dataArray
}
Ce qui me manque ?
- Les données que vous souhaitez imprimer est un tableau bien?
- Double Possible de carte de fonction pour les objets (au lieu de tableaux)
- est [object object] d'être imprimé dans le <p> tag quand u essayé de l'exécuter
- Non, rien n'est retourné
Vous devez vous connecter pour publier un commentaire.
Ce que vous avez besoin est de faire un plan de votre tableau d'objets et n'oubliez pas que chaque élément sera un objet, de sorte que vous pourrez utiliser par exemple la notation point à prendre les valeurs de l'objet.
Dans votre composant
Et rappelez-vous quand vous placez un tableau de jsx il a un sens différent et vous ne pouvez pas simplement mettre l'objet dans votre méthode render comme vous pouvez le mettre dans un tableau.
Prendre un coup d'oeil à ma réponse à le mappage d'un tableau à jsx
Je pense que vous voulez imprimer le nom de la personne ou à la fois le nom et l'adresse électronique :
ou :
@FurkanO a condition que la bonne approche. Bien que d'aller pour une version plus propre approche (es6 façon), vous pouvez faire quelque chose comme ceci
Cheers!
essayez l'extrait de code suivant