0
votes

React-natif: cueillir une image aléatoire à l'aide de maths.floor

J'essaie de choisir une image aléatoire en utilisant math.floor code>. Je veux sélectionner une image entre 20 images que j'ai attribuées.

J'ai 20 images: p> xxx pré>

alors, j'essaie de sélectionner une image aléatoire comme ceci: p>

 selectedRandomImage(){
    const randomImage = randomImages[Math.floor((Math.random() * 19) + 1)]
    console.log(randomImage,'randomImage')
    return(
      <View>
        <Image
          style={{ width: 56, height: 56 }}
          source={randomImage} />
      </View>
    )
  }


4 commentaires

Les index commencent à 0.


Je le sais. Console.Log Certains fois montrent plus de 30 ans.


Plus de 30 ans ne devrait pas arriver, mais vous générez des chiffres 0 à 20 et que vous n'avez que 20 images dans votre tableau.


Il n'y a aucun moyen que le code posté puisse aller au-dessus de 19


3 Réponses :


0
votes

math.random () générer un numéro entre 0 et 1 puis
math.random () * 19 générer un numéro entre 0 et 19 ans et
(math.random () * 19) + 1 Numéro de produit compris entre 1 et 20 mais votre tableau a 19 index et aléatoire [20] renvoie indéfini


0 commentaires

0
votes

aléatoireImage variable ont un chemin d'image aléatoire à partir de RandomImages Array.

nécessite ("chemin d'accès à l'image") renvoie le numéro mappé sur l'image. Réagissez de cartes natives numéros uniques aux images statiques et c'est pourquoi, lorsque vous essayez de vous connecter, il donne un numéro de plus de 20.

Mais, si vous essayez de connecter math.floor ((math.random () * 19) + 1) valeur, il sera inférieur à 20.


0 commentaires

0
votes
   const imageCollection =
    [
      require('App/assets/images/doe1.jpg'),
      require('App/assets/images/doe2.jpg'),
      require('App/assets/images/doe3.jpg'),
      require('App/assets/images/doe4.jpg'),
      require('App/assets/images/John-Doe.jpg'),
      require('App/assets/images/John-Doe.jpg'),
    ];

    const getRandomImage = () => 
      imageCollection[Math.floor(Math.random() * imageCollection.length)];
Would be a better approach as the function is aware of the length of the images array and will update accordingly.

0 commentaires