J'ai une application native React qui est connectée à un PostgresDB via ExpressJS. J'ai un appel de récupération qui contient une URL avec deux paramètres, l'un d'eux est modifié par setState.

Existe-t-il un moyen de montrer (console.log) l'URL de récupération actuelle dans mon application lorsqu'elle s'exécute?

`http://myip/api/hours/daydata/${realDate}/${userid}`

realDate est modifié par this.setState sur un clic de bouton.

Je voudrais console.log l'URL afin que je puisse voir la nouvelle date qui est définie dans l'URL parce que j'ai le problème que mon composant ne se rend pas au premier clic sur le bouton. La date change dans le frontend mais le composant ne rend pas les données que mon fetchcall fournit, il s'affiche lorsque j'appuie deux fois sur le bouton, donc je suis toujours un jour de congé.

Par exemple, je vois les données du 10.10.2019. Lorsque j'appuie sur le bouton de retour, la date change à l'intérieur du calendrier mais les données restent (données du 10.10.2019) - lorsque je clique à nouveau sur le bouton, je devrais voir les données du 08.10.2019 mais j'obtiens les données du 09.10.2019 (1 jour de congé).

Une chose que j'ai remarquée, c'est que les boutons ne s'affichent pas au premier clic, mais le choix d'une date directement dans le calendrier change tout correctement. Ici, vous pouvez voir les 2 appels différents, peut-être que vous voyez ce qui pourrait mal se passer.

  dateBackHandler = () => {
    console.log("Current Date FIRST :", this.state.date); // Here I get the date from today

    const newDate = Moment(this.state.date)
      .subtract(1, "d")
      .format("YYYY-MM-DD");

    console.log("NEW DATE BEFORE SETSTATE & FETCHDATA " + newDate);
 // newDate gives me yesterdays date which is correct

    this.setState({ date: newDate }); // I am setting newDate to be the date

    console.log("Current Date SECOND After setState : ", this.state.date); 
// this log should now be yesterdays date because I changed it but somehow this date is todaysdate again

    this.fetchData(); // in here is the fetchcall that should work with yesterdays date.
  };

Dans mon calendrier (datetimepicker), l'appel setState fonctionne:

onDateChange={date => {
              this.setState({ date: date });
              this.fetchData();
            }}

Merci.

1
yesIamFaded 8 nov. 2019 à 11:20