0
votes

Comment mettre à jour les accessoires d'un composant dans une liste de composants

J'essaie de mettre à jour une valeur de repère d'un composant dans une liste de composants. Voici un exemple de celui-ci.

Je développe une application à l'aide de réactnatif xxx

lorsque je veux mettre à jour un composant, je mettez à jour les composants nommés entier comme: xxx

mais, cette méthode change le composant, non mise à jour. à droite? Je veux dire que les composants sont mis à jour mais myComponent in composants [index] est modifié.

Donc, si je veux Mise à jour le myComponent in composants [index] à l'aide du mode de mise à jour les accessoires numoflique directement, comment puis-je le faire?

Addition :

Qu'est-ce que je n'ai pas mentionné Est-ce que le myComponent a une étiquette image dans celle-ci. Donc, si j'utilise flatliste ou array.pototype.map Il existe plusieurs problèmes.

  1. Si je mettez à jour l'état, toute la liste sera re-rendue. Donc, s'il existe de nombreux éléments de la liste, la vitesse de mise à jour est très lente.
  2. car il y a image dans la liste, si je mettez à jour un élément de la liste, l'ensemble des balises image clignotent depuis que les éléments de la liste sont re-rendus.

    dans cette situation

    1. Y a-t-il un moyen de re-rendu (mise à jour) uniquement un composant que je veux mettre à jour? (mise à jour de la cible)
    2. S'il n'y a aucun moyen de cibler la mise à jour, laissez simplement l'ensemble des éléments de la liste (composants) re-rendus lorsque juste un composant est mis à jour?

2 commentaires

Pourquoi n'utilisez-vous pas flatliste . Je suggère d'utiliser simplement des données de réponse dans State . Ensuite, dans Render Méthode, vous pouvez remplir votre base de vue sur vos données.


Il serait plus facile de ne conserver que des données en état, puis de les rendre avec une fonction de carte


3 Réponses :


0
votes

Vous pouvez utiliser setnativeProps , décrit dans le Documentation directe de manipulation xxx


1 commentaires

Merci pour votre réponse. Mais je peux utiliser la méthode setnativeProps sur myComponent . myComponent n'a pas de cette méthode. Comment puis-je l'utiliser? Avez-vous un exemple dessus?



0
votes

Vous pouvez modifier votre fonction ComponentDidMount CODE> comme ceci (de manière à ce qu'il n'y ait pas de course ou d'asynchronisation dans le code) -:

componentDidMount() {
  fetchingAPI().then(response => {
    this.setState({
        components: this.state.components.concat(
               response.data.map(i => <MyComponent numOfLike={i.numOfLike} />)
        )});
  });
}


0 commentaires

0
votes

Pouvez-vous essayer avec le flatlist ?

par exemple: xxx

puis lorsque vous souhaitez mettre à jour la liste, xxx


2 commentaires

Merci pour votre réponse. Et j'ai une question. En fait, le myComponent a une étiquette image . Donc, il y a deux problèmes ici. 1. Lorsque je mettez à jour l'état, l'élément de la liste complète est mis à jour. Donc, s'il y a beaucoup d'articles, la vitesse de mise à jour est très lente. 2. Étant donné que la mise à jour de l'état mettra à jour l'ensemble des éléments de flattoral, les balises image clignotent après la mise à jour. Y a-t-il un moyen de mettre à jour un certain composant?


Pouvez-vous utiliser un composant pur dans l'élément de rendu?