J'essaie de choisir une image aléatoire en utilisant J'ai 20 images: p> alors, j'essaie de sélectionner une image aléatoire comme ceci: p> math.floor code>. Je veux sélectionner une image entre 20 images que j'ai attribuées. 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>
)
}
3 Réponses :
math.random () code> générer un numéro entre 0 et 1 puis
math.random () * 19 code> générer un numéro entre 0 et 19 ans et
(math.random () * 19) + 1 code> Numéro de produit compris entre 1 et 20 mais votre tableau a 19 index et aléatoire [20] renvoie indéfini p>
Mais, si vous essayez de connecter aléatoireImage code> variable ont un chemin d'image aléatoire à partir de RandomImages CODE> Array. P>
nécessite ("chemin d'accès à l'image") code> 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. P>
math.floor ((math.random () * 19) + 1) code> valeur, il sera inférieur à 20. P>
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.
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