Partage
  • Partager sur Facebook
  • Partager sur Twitter

[REACT NATIVE] Erreur lors de la mise en marche

Comment faire ?

    2 décembre 2019 à 7:58:55

    Bonjour,

    Je suis actuellement le cours React Native disponible sur OpenClassrooms et je n'arrive pas à avancer à cause d'une erreur.

    Lorsque je fais un "npm start" et que je lance l'appli sur mon téléphone, j'obtiens l'erreur suivante :

    et voici l'invite de commande :

    Voici mon code :

    import React from 'react'
    import { StyleSheet, View, Text, ActivityIndicator, ScrollView, Image, Button, TouchableOpacity } from 'react-native'
    import { getFilmDetailFromApi, getImageFromApi } from '../API/TMDBApi'
    import moment from 'moment'
    import numeral from 'numeral'
    import { connect } from 'react-redux'
    
    class FilmDetail extends React.Component {
      constructor(props) {
        super(props)
        this.state = {
          film: undefined,
          isLoading: true
        }
      }
    
      componentDidMount() {
        getFilmDetailFromApi(this.props.navigation.state.params.idFilm).then(data => {
          this.setState({
            film: data,
            isLoading: false
          })
        })
      }
    
      componentDidUpdate() {
        console.log("componentDidUpdate : ")
        console.log(this.props.favoritesFilm)
      }
    
      _displayLoading() {
        if (this.state.isLoading) {
          return (
            <View style={styles.loading_container}>
              <ActivityIndicator size='large' />
            </View>
          )
        }
      }
    
      _toggleFavorite() {
        const action = { type: "TOGGLE_FAVORITE", value: this.state.film }
        this.props.dispatch(action)
      }
    
      _displayFavoriteImage() {
        var sourceImage = require('../Images/favorite-border.png')
        if (this.props.favoritesFilm.findIndex(item => item.id === this.state.film.id) !== -1) {
          sourceImage = require('../Images/favorite.png')
        }
        return (
            <Image
              style={styles.favorite_image}
              source={sourceImage} />
        )
      }
    
      _displayFilm() {
        const { film } = this.state
        if (film != undefined) {
          return (
            <ScrollView style={styles.scrollview_container}>
              <Image
                style={styles.image}
                source={{uri: getImageFromApi(film.backdrop_path)}}
              />
              <Text style={styles.title_text}>{film.title}</Text>
              <TouchableOpacity
                style={styles.favorite_container}>
                onPress={() => this._toggleFavorite()}>
                {this._displayFavoriteImage()}
              </TouchableOpacity>
              <Text style={styles.description_text}>{film.overview}</Text>
              <Text style={styles.default_text}>Sorti le {moment(new Date(film.release_date)).format('DD/MM/YYYY')}</Text>
              <Text style={styles.default_text}>Note : {film.vote_average} / 10</Text>
              <Text style={styles.default_text}>Nombre de votes : {film.vote_count}</Text>
              <Text style={styles.default_text}>Budget : {numeral(film.budget).format('0,0[.]00 $')}</Text>
              <Text style={styles.default_text}>Genre(s) : {film.genres.map(function(genre){
                  return genre.name;
                }).join(" / ")}
              </Text>
              <Text style={styles.default_text}>Companie(s) : {film.production_companies.map(function(company){
                  return company.name;
                }).join(" / ")}
              </Text>
            </ScrollView>
          )
        }
      }
    
      render() {
        return (
          <View style={styles.main_container}>
            {this._displayLoading()}
            {this._displayFilm()}
          </View>
        )
      }
    }
    
    const styles = StyleSheet.create({
      main_container: {
        flex: 1
      },
      loading_container: {
        position: 'absolute',
        left: 0,
        right: 0,
        top: 0,
        bottom: 0,
        alignItems: 'center',
        justifyContent: 'center'
      },
      scrollview_container: {
        flex: 1
      },
      image: {
        height: 169,
        margin: 5
      },
      title_text: {
        fontWeight: 'bold',
        fontSize: 35,
        flex: 1,
        flexWrap: 'wrap',
        marginLeft: 5,
        marginRight: 5,
        marginTop: 10,
        marginBottom: 10,
        color: '#000000',
        textAlign: 'center'
      },
      description_text: {
        fontStyle: 'italic',
        color: '#666666',
        margin: 5,
        marginBottom: 15
      },
      default_text: {
        marginLeft: 5,
        marginRight: 5,
        marginTop: 5,
      },
      favorite_image: {
        width: 40,
        height: 40
      },
      favorite_container: {
        alignItems: 'center'
      }
    })
    
    const mapStateToProps = (state) => {
      return {
        favoritesFilm: state.favoritesFilm
      }
    }
    
    export default connect(mapStateToProps)(FilmDetail)

    Si vous savez à quoi correspond cette erreur, veuillez m'aider pour que je puisse avancer plus vite et continuer

    Merci

    Cordialement

    Thibault

    • Partager sur Facebook
    • Partager sur Twitter

    [REACT NATIVE] Erreur lors de la mise en marche

    × 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