2017-02-18 1 views
0

Je récupère l'API Flickr pour les photos publiques et je consomme quelques résultats différents.Problème de duplication et de formatage de tableau à l'aide de map et split avec React JS

Lorsque vous récupérez l'auteur, il ajoute "[email protected] (" author ") devant tout.J'ai réussi à séparer la première moitié'[email protected] (" 'mais j'ai des problèmes avec le . l'autre moitié idée est juste de saisir l'auteur entre les guillemets.

[email protected] (« auteur »)

l'autre partie est photos montre deux fois pour une raison quelconque Toute pensée ?

let output = this.props.posts.map(e => e.author.split('[email protected] ("').map(f => <li><img src={e.media.m}/><h3>{f}</h3></li>)); 

Répondre si quelqu'un nee ds il:

const regex = /(?:"[^"]*"|^[^"]*$)/; 
    let output = this.props.posts.map((e, index) => <li key={index}><img src={e.media.m}/><h3>{e.author.match(regex)[0].replace(/"/g, "")}</h3></li>); 

Répondre

1

Vous pouvez utiliser une expression régulière pour y parvenir, ce qui est moins Checklist que l'utilisation split:

const author = '[email protected] (" author ")'; 
 
const name = '[email protected] (" John Doe ")'; 
 
const regex = /\(" (.*?) "\)/; 
 

 
console.log(
 
    author.match(regex)[1] 
 
); 
 

 
console.log(
 
    name.match(regex)[1] 
 
);

Ainsi, pour l'extrait de code:

const regex = /\(" (.*?) "\)/; 
let output = this.props.posts.map(e => <li><img src={e.media.m}/><h3>{e.author.match(regex)[1]}</h3></li>); 
+0

C'est une erreur avec la demande d'API, pas avec ce p Iece de code. –

+0

En pensant à la façon de résoudre? – user992731

+0

On dirait qu'Axios ne supporte pas 'jsonp', donc soit trouver une solution de contournement, soit utiliser une bibliothèque différente. –