0
votes

Comment un composant de réacteur-natif peut-il être rendu dans une réponse de succès de récupération?

J'essaie d'afficher un badge avec le nombre de propriétés de chaque type de propriété. Les données de l'API sont reçues, mais le composant Badge ne rend pas.

 renderItem = ({item}) => {

   return(

    <View>  
    ....

    ```{this.countProp(item.id)}

    </View>

    )

  }


0 commentaires

3 Réponses :


0
votes

Vous pouvez enregistrer intervention.properties.length dans l'état, puis l'accédez à renderItem . Quelque chose comme ceci: xxx

à renderitem , vous pouvez faire quelque chose comme ceci: xxx


3 commentaires

Merci pour votre réponse! Le badge rend maintenant rendu mais la valeur est null, l'état ne semble pas mettre à jour.


Comment avez-vous dirigé ce premier morceau de code? Je le mettrais dans une méthode et l'exécuterais à l'intérieur ComposantDidMount . S'il renvoie une valeur, l'état sera défini et il sera visible dans le badge. Je ne sais pas quelle était votre approche.


Oui, je l'ai mis à l'intérieur de la méthode "CountProp (TYPEID)", mais le résultat que je voulais demander que cette méthode soit appelée à l'intérieur de la méthode "RenderItem (TypeObject)" afin d'obtenir le nombre de propriétés pour chaque type. () Inside ComponentDidMount ne fonctionnerait pas pour moi. J'espère avoir expliqué mon approche clairement et encore merci pour votre aide.



0
votes
countProp = (id) => {
    fetch('http://10.0.2.2:8000/api/property/' + id).then((data) => data.json()).then((response) => {
            this.setState({ length: response.properties.length });
    });
};

renderItem = ({ item }) => {
    this.countProp(item.id);
    return (
        <View>
            <Badge value={this.state.length} />
        </View>
    );
}
Hope that helps.

1 commentaires

J'ai aussi essayé cette approche, mais cela ne le répare pas, merci de toute façon.



1
votes

Vous trouverez peut-être plus facile de la casser dans un composant séparé et de faire appel à l'API dans le composantDidMount quelque chose comme: xxx pré>

, puis utilisez ce composant qui le passe comme ID: p >

import Item from "./path/to/Item.js";

...

<Item id={ 7 } />


0 commentaires