Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème React (exo jeu du pendu)

.has is not a function

Sujet résolu
    18 septembre 2019 à 13:50:30

    EDIT : Trouvé ! en remplacant has() par includes() ça fonctionne :p

    Hello :) 

    Je suis un peu en galère sur le jeu du pendu (exo du cours React). 

    J'y vais petit à petit et j'aimerais déjà bien pouvoir setup un début de parti (sans interaction pour le moment) en gros j'ai un tableau avec une listes de mots ça affiche au hasard un de ces mots en masquant les lettres avec le caractères " _ ". 

    Voilà mon code actuellement : 

    Un composant Letters qui comprend en gros toutes les lettres de l'alphabet pour créer les boutons (mais pas utile que je vous le montre pour le moment vue que comme dit plus haut, à ce stade il n'y a aucune interaction). 

    Et dans mon App.js j'ai : 

    import React, { Component } from 'react'
    import shuffle from 'lodash.shuffle'
    
    import './App.css'
    
    import Letters, { LETTER_TAB } from './Letter'
    
    const phraseTab = shuffle(['LOREM', 'IPSUM', 'DOLOR'])
    const phrase = phraseTab[0]
    const usedLetters = []
    
    class App extends Component {
    
      computeDisplay(phrase, usedLetters){
        return phrase.replace(/\w/g,
          (letter) => (usedLetters.has(letter) ? letter : '_')
        )
      } 
      
      render(){
        return (
          <div className="App">
            <h1>Jeu du pendu</h1>
            <h2>{this.computeDisplay(phrase, usedLetters)}</h2>
            <Letters entries= {LETTER_TAB} />
          </div>
        );
      }
    }
    
    export default App;
    



    Et j'ai comme erreur "sedLetters.has is not a function "
    Je rappel pour le moment mon seul et unique but est d'afficher " _ _ _ _ _ _ " en gros un nombre de " _ " correspondant à un mot au hasard de mon tableau :) 

    La fonction comuteDisplay est founi dans l'énoncé, j'ai peut être zappé quelque chose j'ai beau tester/chercher partout je ne trouve pas de solutions, quelqu'un aurait une idée ? (j'ai sans doute zappé quelque chose je débute totalement en React)

    Merci !

    -
    Edité par Yipadrien 18 septembre 2019 à 15:32:51

    • Partager sur Facebook
    • Partager sur Twitter
      20 septembre 2019 à 3:26:48

      Bonjour "usedLetters.has is not a function" , parce que 
      Array.prototype.has === undefined // output -> true
      // la methode "has" n'est pas implémenter sur les instances de Array et usedLetters et une instance de Array

      -
      Edité par SamuelGaborieau3 20 septembre 2019 à 3:27:25

      • Partager sur Facebook
      • Partager sur Twitter

      suggestion de présentation.

      Problème React (exo jeu du pendu)

      × 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