0
votes

Ne pas obtenir de données de JSON imbriquées dans React-Native

Je veux obtenir des données de JSON imbriquées.

Mon JSON ressemble à celui indiqué ci-dessous P>

    {
    "id": 2,
    "cover_image": "http://13.233.31.123/media/homepage-banner.jpg",
    "name": " Website",
    "tagline": " IT Right",
    "status": "ACTIVE",
    "client_name": "Company",
    "start_date": null,
    "end_date": null,
    "technology_frontend": "HTML, CSS, JAVASCRIPT\r\nCMS: WORDPRESS",
    "technology_backend": "PHP",
    "description": "We provide robust and high quality Custom Web Development.\r\nCodism is a global technology and business services consulting firm. We are specialized in servicing business market needs specializing in Web Design and Development, Online marketing and IT Consulting Services to commercial and government customers. We provide staffing and end-to end consulting services for organizations.",
    "gallery": [
        {
            "project": 2,
            "image": "http://localhost/media/gallery_image/homepage-banner.jpg"
        },
        {
            "project": 2,
            "image": "http://localhost/media/projects/gallery_image/software-development.jpg"
        },
        {
            "project": 2,
            "image": "http://localhost/media/projects/gallery_image/New_FRS_Image_Mobile_app_development.jpg"
        }
    ]
}


2 commentaires

Comment définissez-vous?


Merci de réponse et désolé pour la fin. Je suis en train de paramétrer l'état comme celui-ci .Chen (((Responsedata) => {this.setstate ({Data.SeState ({ResponsableData}) This.SeState ({Galerie: Responsedata.Gallery})


3 Réponses :


0
votes

J'espère que vous faites une erreur tout en settstate Votre état devrait être comme xxx pré>

lorsque vous êtes instatué sur le composantdidmount ou n'importe où, alors faites quelque chose comme p> xxx pré>

après que vous puissiez utiliser des données sur votre Méthode de rendu de rendu des images. p> xxx pré>

si votre JSONDATA est un tableau et que vous souhaitez rendre le premier objet de tableau, de même que P>

this.state = {data: []};
this.setState({data:jsonData)};
this.state.data.map(data => data.galley.map(item => <Image source={{item.image}/>));


18 commentaires

essayé la dernière donne une erreur ceci.state.data.map n'est pas une fonction


utilisez ceci.state.data.galley.map (item => Il semble que votre réponse est un objet non un tableau


(3) [{...}, {...}, {...}] 0: {Projet: 2, Image: "http://13.233.31.123/media/projects/gallery_image/homepage- banner.jpg "} 1: {projet: 2, Image:" http://13.233.31.123/media/projects/gallery_image/software- Development.jpg "} 2: {projet: 2, image:" http: //13.233 .31.123 / Media / Projets / Galerie_Image / New_frs_i Mage_mobile_app_deve lopment.jpg "} Longueur: 3__Proto__: Array (0) Ceci est mon this.state.data.gallery


Veuillez consoler le ceci.State avant de rendre les images, laissez-moi savoir si vous obtenez la matrice dans la propriété de données


tu veux dire ça.state.data ??


Utilisez ceci, il fonctionnera ceci.state.data.gallery.map (item => );


et utilisez la condition comme si ('Galerie' dans cette.State.data)


Render () {retour ( {this.state.data.gallery.map (item => )}


Render () {Si (Galerie 'dans cette.state.data) {return ( {this.state.data.gallery.map (item => )} < / Voir>)} Retour NULL; }


Utilisez la condition quelque chose comme ci-dessus


désolé mais comment donner la condition comme ça


Si une flatliste utilise, il fonctionne alors pourquoi il ne fonctionne pas avec la carte


parce que tu as fait quelque chose


Mais venir dans console.log


S'il vous plaît aide je le veux avec carte


Le problème est que lorsque vous appelez au serveur pour la rétrécissement des données à cette époque, cela.state.data est un objet vide {} et il n'y a pas de propriété Galerie dans cette méthode.data et la méthode de rendu Obtenez l'erreur qui est pourquoi je disais utiliser la condition


RenderImages = (Données) => {Si (Galerie 'en données) {Retour ( {Data.Gallery.map (item => )} ) } renvoie null; } Utilisez cette méthode dans votre méthode de rendu comme ceci.RenderImages (this.state.data)


Nope Bro montrant une source invalide merci de me donner du temps et du support



0
votes

Si vous voulez avoir toutes les images de votre état, vous pouvez faire quelque chose comme ça.

Lorsque vous utilisez l'instate, vous pouvez essayer setstate ({... Yourjson}) pour créer un nouvel objet de votre JSON dans votre état.


0 commentaires

0
votes

Essayez d'analyser d'abord le JSON comme

.then((responseData) => {
  newData = JSON.parse(responseData);
  this.setState({ data: newData });
  this.setState({ ... newData.gallery });
})


0 commentaires