Ma consultation retourne un objet json avec un tableau à l'intérieur du tableau ... Mon console.log
est comme ceci:
componentDidMount() { //... this.myFunction(myJson.item3.map(content => content.id)) } myFunction = id => { //something.... }
J'ai besoin de l'élément item3
et passer comme un paramètre, donc je l'ai essayé:
item1: false item2: 999 item3: Array(3) 0: {id: 1589, data: "..."} 1: {id: 1587, data: "..."}
Mais, ma variable content
est retournée comme "non défini" .
J'ai essayé d'utiliser différentes méthodes pour le faire, mais sans succès.
Qu'est-ce que je fais de mal?
Comment puis-je obtenir map ()
mon tableau item3
et passer comme un paramètre à myFunction
?
3 Réponses :
Je pense que vous voulez quelque chose de plus comme ceci:
componentDidMount() { //... myJson.item3.map(content => this.myFunction(content.id)) } myFunction = id => { //something.... }
Ce que vous faites dans votre code est de mapper sur le tableau et de ne rien faire. Puis appeler myFunction sur undefined puisque la carte ne renvoie jamais rien. Ce que vous voulez faire à la place, c'est mapper la fonction à chaque élément du tableau pour obtenir l'ID. Donc, vous appelleriez map, puis dans la carte, appelez myFunction pour chaque élément.
Vous n’avez pas montré assez, j’ai ce code qui fonctionne:
let things = { thing1: false, thing2: '999', thing3: [{ id: 1589, data: "..." }, { id: 1587, data: "..." }] } const myFunction = id => { console.log(id) } myFunction(things.thing3.map(content => content.id))
En supposant que votre objet soit structuré comme vous le pensez, cela devrait fonctionner correctement.
var jsonObj = { item1: false, item2: 999, item3: [ {id: 1589, data: "..."}, {id: 1587, data: "..."} ] }; const ids = jsonObj.item3.map( o => o.id ); console.log(ids);
Si cela ne vous donne toujours pas votre tableau de identifiants
, veuillez poster le retour exact de ce à quoi ressemble votre objet json.
Vous transmettez un tableau d’ID à «maFonction». Est-ce ce que vous avez l'intention?
Pouvez-vous ajouter le code où vous conservez la console pour enregistrer votre
contenu
en relation avec votre fonction CDM. Peut-être que CDM n'a pas accès aucontenu
.Pouvez-vous également donner la sortie attendue. Ce que vous voulez réellement n'est pas clair.
Yuch. Pourquoi les gens utilisent-ils
a = b => {
dans les cours? Quel est le problème aveca (b) {
?@WillHoskings C'est une fonction, pas une classe, et c'est le nouveau standard. developer.mozilla.org/en-US/docs/ Web / JavaScript / Référence /…
C'est un composant React, et ils utilisent évidemment la syntaxe de la fonction de flèche dans une classe pour une raison quelconque.
Oui, les composants de réaction peuvent avoir des fonctions en leur sein. Et cette syntaxe est toujours très acceptable et utile pour cela.