De réagir .la carte n'est pas une fonction

J'essaie d'apprendre à Réagir et je suis un novice quand il s'agit de Javascript. Maintenant, je travaille sur une application qui est de l'extraction de données provenant de Flickr API. Le problème est que lorsque j'essaie d'utiliser la méthode map sur les accessoires dans le Main.js composant, j'obtiens un message d'erreur disant: "Uncaught TypeError: ce.accessoires de jeu.des photos.la carte n'est pas une fonction". Après une recherche ici sur Stackoverflow, je pense que le problème est que cette.les accessoires sont des objets javascript et pas un tableau. Le problème est que je n'arrive pas à comprendre comment faire un tableau. Quelqu'un peut-il expliquer ce que je fais mal?

Mon code:

class App extends Component {

  constructor() {
  super();
  this.state = {

  }
}

componentDidMount() {

let apiKey = 'xxxxxxxxxxxxxxxxxx';
let searchKeyword = 'nature';
let url = `https://api.flickr.com/services/
           rest/?api_key=${apiKey}&method=flickr.photos.
           search&format=json&nojsoncallback=1&&per_page=50
           &page=1&text=${searchKeyword}`;

fetch(url)
  .then(response => response.json())
  .then(data => data.photos.photo.map((x) => {

    this.setState({
      farm: x.farm,
      id: x.id,
      secret: x.secret,
      server: x.server})
   //console.log(this.state)
  }))
 }

    render() {
      return (
        <div className="App">
          <Header />
          <Main img={this.state.photos} />
          <Navigation />
        </div>
      );
    }
  }

  export default class Main extends Component {

  render() {

    return(
      <main className="main">
        {console.log(this.props.photos)}
      </main>
    )
  }
 }

Edit:
Pourquoi est-ce.accessoires de jeu.img undefined premier?

Capture d'écran de la console.journal(ce.accessoires de jeu.img)

  • qu'est-ce que photo? map est une méthode de Array.
  • "Je reçois une erreur en disant: "Uncaught TypeError: ce.accessoires de jeu.des photos.la carte n'est pas une fonction"' this.props.photos.map ne pas apparaître n'importe où dans votre code de la cité. data.photos.photo.map n', vouliez-vous dire cela?
  • Séparément: Vous appelez map et à l'intérieur de la map rappel, vous appelez setState et ne retourne pas de valeur, si vous êtes à la cartographie de chaque entrée à undefined; vous n'êtes pas à l'aide de la valeur de retour de map à tous (vous êtes de retour, c'est hors de then, mais rien utilise l'résultant de la promesse, il en va non utilisés). Vous avez presque certainement ne voulez pas appeler à plusieurs reprises setState comme ça.
  • L'URL n'ont vraiment mais les sauts de ligne? Cela ne fonctionnerait pas correctement.
InformationsquelleAutor Tose | 2017-06-15