0
votes

Réagir de l'application doit remplir un tableau dans A pour boucle

Je remplissais un tableau directement à partir d'une promesse, mais j'ai réalisé que je dois ajouter du code HTML au tableau afin que je tentais d'utiliser une boucle.

pullData().then((response) => {
    //previously populated medication array from response like this
    this.setState({medications: response});

    //now I wish to loop  how can I put data in , push data in?
    for (let i = 0; i < response.length; i++) {
       // push data into array?  
       this.medications.push <a onclick={`jsfunction(${response[i].value}) href=javascript:void(0);`}>{`${response[i].value}`}</a>;

    }

});


5 commentaires

Quel est le problème avec votre code? Il semble que vous puissiez mettre à jour l'état après la boucle, pour que des changements visuels se produisent. Il est difficile de vous aider sans savoir ce que vous essayez de faire ou quel est le problème.


Cab, vous souhaitez décrire votre déclaration de problème un peu ce que vous voulez réaliser


Pouvez-vous s'il vous plaît fournir le journal de la console de ceci.Médections après la STESTATE


SteState n'est pas une opération synchrone , alors attendez-vous à la valeur de ceci.Médections à réfléchir juste après this.setstate () instruction n'est pas correcte. De plus, toute la logique de rendu doit être placée à l'intérieur de la fonction (ou d'autres méthodes de cycle de vie bases sur votre besoin), où il est toujours assuré que les valeurs mises à jour seront reçues. Ainsi, essayez d'utiliser la logique de la boucle dans l'une de ces fonctions.


En outre, Mise à jour directe de l'état n'est pas une bonne idée ( this.medications.push ... ), car il ne rentrera pas le composant et que votre interface utilisateur pourrait ne pas représenter réellement l'état mis à jour


3 Réponses :


0
votes

Le problème que vous mentionnez semble peu clair. Selon ma compréhension, vous voulez aller chercher ces données et le montrer comme une liste.

Ici, essayez celui-ci xxx


2 commentaires

Je ne pense pas que je comprenne la poussée, j'ai des données JSON et en avez besoin pour être comme ceci 0: {valeur: "onglet Vicodin", short_description: "onglet Vicodin 5-300mg"}


Au lieu de cela, je reçois les données que ceci: 0: "onglet Vicodin"



0
votes

Vous ne pouvez pas simplement mettre à jour l'état en appelant this.medications.push () code>

Vous pouvez mettre à jour l'état à l'intérieur de la boucle comme ceci: p>

let allMedications = [];

for (let i = 0; i < response.length; i++) {
    allMedications.push(<a onclick={`jsfunction(${response[i].value}) href=javascript:void(0);`}>{`${response[i].value}`}</a>);
}

this.setState({
    medications: allMedications
})


3 commentaires

Besoin de mes données à aimer ce JSON 0: {Valeur: "onglet Vicodin", Short_Description: "onglet Vicodin 5-300mg"} Mais, mais je me suis arrêté temporairement de l'Onclick et de remplacer par < code> réponse [i] .value , mais je reçois le mauvais jeu de résultats


Je finis avec "onglet Vicodin" - donc je suppose que je dois avoir JSON stringify? Je devrais construire la valeur et les champs courts_description?


@Jeremymiller Pouvez-vous ajouter votre code mis à jour en question avec ce que vous attendez et quel est le résultat actuel?



0
votes

J'ai fini par faire ce xxx


0 commentaires