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" } ] }
3 Réponses :
J'espère que vous faites une erreur tout en settstate
Votre état devrait être comme lorsque vous êtes instatué sur le composantdidmount ou n'importe où, alors faites quelque chose comme p> après que vous puissiez utiliser des données sur votre Méthode de rendu de rendu des images. p> 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}/>));
essayé la dernière donne une erreur ceci.state.data.map n'est pas une fonction
utilisez ceci.state.data.galley.map (item =>
(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) Code> 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 (
Render () {Si (Galerie 'dans cette.state.data) {return (
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 (
Nope Bro montrant une source invalide merci de me donner du temps et du support
Si vous voulez avoir toutes les images de votre état, vous pouvez faire quelque chose comme ça. P>
Lorsque vous utilisez l'instate, vous pouvez essayer setstate ({... Yourjson}) code> pour créer un nouvel objet de votre JSON dans votre état. P>
Essayez d'analyser d'abord le JSON comme
.then((responseData) => { newData = JSON.parse(responseData); this.setState({ data: newData }); this.setState({ ... newData.gallery }); })
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}) Code>