Partage
  • Partager sur Facebook
  • Partager sur Twitter

ReferenceError: data is not defined

    19 mars 2021 à 7:11:27

    Bonjour à tous,

    Je suis en ce moment le cours https://openclassrooms.com/fr/courses/4902061-developpez-une-application-mobile-react-native/4978176-utilisez-les-props

    jusque là tout allait bien.

    on doit faire le lien avec une liste de films et le component search.

    A l'exécution j'ai : 

    ReferenceError: data is not defined
    Module.../../../../../../../../../Users/emmanuel/repo/ReactNative/MoviesAndMe/Helpers/filmsData.js
    http://localhost:19006/static/js/bundle.js:1074:69
    1071 |
    1072 | "use strict";
    1073 | __webpack_require__.r(__webpack_exports__);
    > 1074 | /* harmony default export */ __webpack_exports__["default"] = (data = [{
    | ^ 1075 | id: 181808,
    1076 | vote_average: 7.2,
    1077 | title: "Star Wars VIII - Les derniers Jedi",

    Vu mon niveau en Reactive Native (H+1 heure :)) je ne vois pas ce qui bloque :/ et je me disais que vous c'est un reflexe donc je viens vous demander ^^

    Merci.

    Emmanuel

    source du component Search.js

    // Components/Search.js
    
    import React from 'react'
    import { StyleSheet, View, TextInput, Button, Text, FlatList } from 'react-native'
    import films from '../Helpers/filmsData'
    
    
    class Search extends React.Component {
      render() {
        return (
          <View style={styles.main_container}>
            <TextInput style={styles.textinput} placeholder='Titre du film'/>
            <Button title='Rechercher' onPress={() => {}}/>
            {/* Ici j'ai simplement repris l'exemple sur la documentation de la FlatList */}
            <FlatList
              data={films}
              renderItem={({item}) => <Text>{item.title}</Text>}
            />
          </View>
        )
      }
    }
    
    const styles = StyleSheet.create({
      main_container: {
        flex: 1,
        marginTop: 20
      },
      textinput: {
        marginLeft: 5,
        marginRight: 5,
        height: 50,
        borderColor: '#000000',
        borderWidth: 1,
        paddingLeft: 5
      }
    })
    
    export default Search
    

    source de filmData.js

    // Helpers/filmsData.js
    
    export default data = [
       {
          id:181808,
          vote_average:7.2,
          title:"Star Wars VIII - Les derniers Jedi",
          poster_path:"",
          original_title:"Star Wars: The Last Jedi",
          overview:"Nouvel épisode de la saga. Les héros du Réveil de la force rejoignent les figures légendaires de la galaxie dans une aventure épique qui révèle des secrets ancestraux sur la Force et entraîne de choquantes révélations sur le passé…",
          release_date:"2017-12-13"
       },
       {
          id:181809,
          vote_average:8.1,
          title:"La Guerre des étoiles",
          poster_path:"",
          original_title:"Star Wars",
          overview:"Il y a bien longtemps, dans une galaxie très lointaine... La guerre civile fait rage entre l'Empire galactique et l'Alliance rebelle. Capturée par les troupes de choc de l'Empereur menées par le sombre et impitoyable Dark Vador, la princesse Leia Organa dissimule les plans de l’Étoile Noire, une station spatiale invulnérable, à son droïde R2-D2 avec pour mission de les remettre au Jedi Obi-Wan Kenobi. Accompagné de son fidèle compagnon, le droïde de protocole C-3PO, R2-D2 s'échoue sur la planète Tatooine et termine sa quête chez le jeune Luke Skywalker. Rêvant de devenir pilote mais confiné aux travaux de la ferme, ce dernier se lance à la recherche de ce mystérieux Obi-Wan Kenobi, devenu ermite au cœur des montagnes désertiques de Tatooine...",
          release_date:"1977-05-25"
       }
    ]



    • Partager sur Facebook
    • Partager sur Twitter
      28 mars 2021 à 12:55:47

      // Helpers/filmsData.js
      
      const data = [
         {
            id:181808,
            vote_average:7.2,
            title:"Star Wars VIII - Les derniers Jedi",
            poster_path:"",
            original_title:"Star Wars: The Last Jedi",
            overview:"Nouvel épisode de la saga. Les héros du Réveil de la force rejoignent les figures légendaires de la galaxie dans une aventure épique qui révèle des secrets ancestraux sur la Force et entraîne de choquantes révélations sur le passé…",
            release_date:"2017-12-13"
         },
         {
            id:181809,
            vote_average:8.1,
            title:"La Guerre des étoiles",
            poster_path:"",
            original_title:"Star Wars",
            overview:"Il y a bien longtemps, dans une galaxie très lointaine... La guerre civile fait rage entre l'Empire galactique et l'Alliance rebelle. Capturée par les troupes de choc de l'Empereur menées par le sombre et impitoyable Dark Vador, la princesse Leia Organa dissimule les plans de l’Étoile Noire, une station spatiale invulnérable, à son droïde R2-D2 avec pour mission de les remettre au Jedi Obi-Wan Kenobi. Accompagné de son fidèle compagnon, le droïde de protocole C-3PO, R2-D2 s'échoue sur la planète Tatooine et termine sa quête chez le jeune Luke Skywalker. Rêvant de devenir pilote mais confiné aux travaux de la ferme, ce dernier se lance à la recherche de ce mystérieux Obi-Wan Kenobi, devenu ermite au cœur des montagnes désertiques de Tatooine...",
            release_date:"1977-05-25"
         }
      ]
      
      export default data
      

      -
      Edité par MessMess2 28 mars 2021 à 13:07:43

      • Partager sur Facebook
      • Partager sur Twitter
        11 avril 2021 à 9:14:03

        Bonjour tu as réglé le problème du data is undefined, en effet il manqué la déclaration de la donnée,

        si jamais tu as un autre message d'erreur où un warning du genre:

        list child key should be uniq


        Le composant FlatList attend une props keyExtractor dans la quelle tu dois lui indiqué qu'elle attribut sert à identifié chaque élément de la liste.

        <FlatList
            data={films}
            renderItem={({item}) => <Text>{item.title}</Text>}
            
            // clés qui sert à identifié chaque élément de la liste
            // il sera ajouté à la props `key` de chaque élément de la liste
            keyExtractor={item => item.id}
        />



        • Partager sur Facebook
        • Partager sur Twitter

        suggestion de présentation.

        ReferenceError: data is not defined

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown