Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème Flatlist du cours ReactNative

    27 octobre 2020 à 16:25:24

    Bonjour,

    J'en suis à la partie sur l'utilisation des Props du cours sur React Native

    https://openclassrooms.com/fr/courses/4902061-developpez-une-application-mobile-react-native/4978176-utilisez-les-props

    Je rencontre une Error, dont je n'arrive pas à m'extraire :

    J'ai copié collé le code proposé, pour revenir donc à la version utilisée par l'auteur :

    // Components/Search.js

    import React from 'react'

    import { StyleSheet, View, TextInput, Button, FlatList, Text } 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={() => {}}/>

          </View>

          <FlatList

      data={films}

      renderItem={({item}) => <Text>{item.title}</Text>}

    />

        )

      }

    }

    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, avec une hiérarchie de mes dossiers comme celle ci (reverifiée mainte fois)

    Et il me signale en boucle ce message d'erreur :

    ERROR
    16:21
    SyntaxError: /Users/jupiter/webdev/Perso/Runit/MoviesAndMe/Components/search.js: Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>? (14:6) 12 | <Button title='Rechercher' onPress={() => {}}/> 13 | </View>> 14 | <FlatList data={[{key:'a'}, {key:'b'}]} renderItem={({item}) =><Text>{item.key}</Text>}} /> | ^ 15 | ) 16 | } 17 | }

    Quelqu'un aurait il une piste ? j'ai l'impression qu'il ne reconnait pas le </> du tag au dessus, hors encore une fois le code est purement copié collé.
    J'avais eu le même problème avec le code que j'avais build par moi même en suivant pas à pas les étapes,
    Merci pour votre aide ! Bon dev à tous

    -
    Edité par MtsVlr 27 octobre 2020 à 16:29:56

    • Partager sur Facebook
    • Partager sur Twitter
      27 octobre 2020 à 18:07:18

      mets peut-être des parenthèses autour des balises Text:
       renderItem={({item}) => (<Text>{item.title}</Text>)}
      • Partager sur Facebook
      • Partager sur Twitter
        29 octobre 2020 à 23:17:41

        umfred a écrit:

        mets peut-être des parenthèses autour des balises Text:

         renderItem={({item}) => (<Text>{item.title}</Text>)}


        Merci beaucoup pour la réponse Umfred, malheureusement ça ne fonctionne pas :(.

        J'ai pas mal galéré à trouver la soluce, c'était bête, mais à mon level ça se voyait difficilement, il suffisait de replacer les View en dessous, tout simplement

        Merci à tous ceux qui auront pris le temps de lire ce pavé :)

        J'ai essayé d'écrire un message à l'auteur pour corriger son code d'exemple mais je n'ai pas encore eu de rep!

        Bon courage à tous !!!!!

        -
        Edité par MtsVlr 29 octobre 2020 à 23:20:59

        • Partager sur Facebook
        • Partager sur Twitter
          30 octobre 2020 à 11:03:30

          du coup, remet le bon code ici (en utilisant le bouton de mise en forme du code </> cette fois)
          • Partager sur Facebook
          • Partager sur Twitter
            13 décembre 2020 à 4:18:05

            J'ai aussi que des problèmes depuis le début de ce cours c'est insupportable je crois qu'il n'est pas à jour. C'est dommage car il m'a l'air super bien mais la je suis sur le point de l'arrêter. Après 1 semaine, je n'arrive toujours pas à faire mon appel api sur le chapitre des props.

            • Partager sur Facebook
            • Partager sur Twitter
              4 janvier 2021 à 11:29:33

              Bonjour à tous,

              Même soucis de mon côté avec ce cours. La gestion de la pagination sur la FlatLIst ne fonctionne pas bien.

              L'évènement OnEndRached est levée plusieurs fois au même moment. Ce qui entraine à partir de la page 4 cette erreur :

              Encountered two children with the same key, `521410

              Ce qui est normal da voir des duplicate keys si on appelle 2 fois la même page.

              Merci pour votre retour sur ce point

              • Partager sur Facebook
              • Partager sur Twitter
                13 avril 2021 à 20:01:29

                jerome0631 a écrit:

                Bonjour à tous,

                Même soucis de mon côté avec ce cours. La gestion de la pagination sur la FlatLIst ne fonctionne pas bien.

                L'évènement OnEndRached est levée plusieurs fois au même moment. Ce qui entraine à partir de la page 4 cette erreur :

                Encountered two children with the same key, `521410

                Ce qui est normal da voir des duplicate keys si on appelle 2 fois la même page.

                Merci pour votre retour sur ce point

                Pour répondre à ton problème j'ai essayé une multitude de solutions proposé sur le web, et j'ai enfin réussi. Je n'ai pas encore vérifié pour ce petit changement à résolu le problème. Mais voilà sans plus tarder la solution:

                // Changer 

                keyExtractor={(item,) => item.id.toString()}

                //Nouvelle ligne

                keyExtractor={(item,index) => index.toString()}

                Normalement ton problème est résolu

                • Partager sur Facebook
                • Partager sur Twitter

                Problème Flatlist du cours ReactNative

                × 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