Je tente donc de générer une sélection aléatoire à partir d'un tableau qu'un utilisateur peut ajouter en appuyant sur un bouton et je suis un peu confus sur la façon de le faire. L'application est faite dans la réaction et elle est utilisée API de Moviedb faire un moteur de recherche de film. C'est ce que j'ai essayé jusqu'à présent:
3 Réponses :
Vous arrivez là-bas. Vous avez quelques problèmes: P>
Vous définissez une ar dans addtofavourites, donc chaque fois que cela s'appelle une nouvelle Ar est créé uniquement dans cette fonction. Essentiellement, vous créez le tableau, en ajoutant l'article, puis il est jeté dans la poubelle. p>
Depuis que votre Movierow représente un film, vous allez avoir un composant d'emballage qui maintient arrêté dans son état. Vous allez définir également des addtofavourites là-bas et ensuite transmettre cela à chaque Composant Movierow, en veillant à passer au moins l'ID de film pour que vous puissiez Sachez quel film ajouter aux favoris p> li>
Je ne suis pas sûr de ce que Movierow dans AddToVavorites fait parce que vous l'avez attribuée, puis ne l'utilisez jamais. Essentiellement ici, vous définissez la première fois à Movierow sur l'objet Global Window, la première fois, puis réaffectant que chaque fois que vous cliquez. Cela semble inutile. P> li>
Vous voudrez également déplacer la sélection sur le composant parent qui maintient votre liste de préférée. P> li> ol>
Espérons que cela vous amène dans la bonne direction. Faites-moi savoir si vous avez des questions p>
Je pense que état code> est ce que vous recherchez probablement. Vous devez définir un état de tableau initial dans le constructeur, puis mettez-le à la mettre à jour dans Addtofavourites (à l'aide de cet établissement d'État) et utilisez l'état mis à jour dans le choix. Veuillez consulter The Docs . P>
Vous devez stocker la liste des films dans votre état de composant. En savoir plus sur le cycle de vie de l'état et des composants de l'application dans le réact de la documentation
render() {
return (
this.state.movies.map((movie) => <MovieComponent key={movie.id} title={movie.title} />)
)
}
Ok donc j'ai fait les deux premières étapes, mais je suis un peu confus sur le 3 morceau de code, pourriez-vous expliquer ce que vous entendez en mappant la matrie à une liste de composants? Jusqu'ici mon tableau ajoute un film à mais ce n'est toujours qu'un film, lequel est le dernier cliqué, donc je suis un peu souples sur la façon de l'approcher. Merci un million pour la réponse!
Si vous n'êtes pas familier avec la manipulation du tableau en JavaScript, vous devriez en savoir plus à ce sujet, il y a beaucoup de tutoriels, de livres, etc. Le Carte () La méthode crée une nouvelle matrice avec la valeur renvoyée dans la fonction pour chaque élément de la matrice. En d'autres termes, nous voulons transformer les données brutes que vous avez eues de votre .json dans une liste de composants réagissant pour rendre dans votre modèle.
À propos, ma réponse est basée sur un tableau car je pensais que vous vouliez afficher une liste de films, mais que si vous voulez seulement montrer un film, vous pouvez le faire sans une matrice.
var arr = []; code> n'existe que dans cette fonction et est supprimé de la mémoire lorsque la fonction est terminée. Déplacez la déclaration en dehors de votre classe pour conserver la variable en mémoire. Aussiarr.push (...) code> est suffisant,arr = arr.push (...) code> écrasera la matrice avec la longueur du nouveau tableau. Ensuite, vous voudrez supprimer le paramètreArr code> à partir depickrandom code> car il a le cas de l'externearr comp code>. Vous n'en avez pas besoin là-bas de toute façon et vous n'en passez rien pour démarrer lorsque vous appelez la fonction.