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 p> lorsque je veux mettre à jour un composant, je mettez à jour les composants nommés entier comme: p> mais, cette méthode change le composant, non mise à jour. à droite? Je veux dire que les composants code> code> sont mis à jour mais Donc, si je veux Addition fore>: p> Qu'est-ce que je n'ai pas mentionné Est-ce que le dans cette situation p> myComponent code> in composants [index] code> est modifié. p> myComponent code> in composants [index] code> à l'aide du mode de mise à jour numoflique code> directement, comment puis-je le faire? p> myComponent code> a une étiquette code> image code> dans celle-ci. Donc, si j'utilise flatliste code> ou array.pototype.map code> Il existe plusieurs problèmes. P>
image code> dans la liste, si je mettez à jour un élément de la liste, l'ensemble des balises code> image code> clignotent depuis que les éléments de la liste sont re-rendus. LI >
ol>
3 Réponses :
Vous pouvez utiliser setnativeProps code>, décrit dans le Documentation directe de manipulation
Merci pour votre réponse. Mais je peux utiliser la méthode setnativeProps code> sur myComponent code>. myComponent code> n'a pas de cette méthode. Comment puis-je l'utiliser? Avez-vous un exemple dessus?
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} />)
)});
});
}
Pouvez-vous essayer avec le par exemple: p> puis lorsque vous souhaitez mettre à jour la liste, p> flatlist code>?
Merci pour votre réponse. Et j'ai une question. En fait, le myComponent code> a une étiquette code> image code>. 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 code> image code> clignotent après la mise à jour. Y a-t-il un moyen de mettre à jour un certain composant? B>
Pouvez-vous utiliser un composant pur dans l'élément de rendu?
Pourquoi n'utilisez-vous pas
flatliste code>. Je suggère d'utiliser simplement des données de réponse dansState Code>. Ensuite, dansRender code> 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