1
resposta

dúvida em relação ao localStorage

Boa tarde!

Como me foi muito bem orientado por aqui, estou utilizando o localStorage para armazenar os dados de uma API e utilizar em uma página de resultados, mas acredito que esteja fazendo da forma incorreta.

  methods: {
      submit(){
      let self = this;
      const axios = require("axios");
      var getObject = localStorage.setItem('resultadoCotacao', JSON.stringify(this.cotacao));
      axios
        .get(
          "https://us-central1-onsurance-new.cloudfunctions.net/quote/tires",
          this.$data
        )
        .then(function(response) {
          self.cotacao = response.data;

      }
        )},

        },


    created() {
        var setObject = localStorage.setItem('resultadoCotacao', [{}]);
    }

}

E na página de resultados fiz da seguinte forma:

export default {
    name: 'resultado',

   data: {

     return : {
       getObject: []
     }
   },

    created(){
      this.getObject = JSON.parse(localStorage.getItem('resultadoCotacao'));

    }

Eu estou tendo que enviar duas vezes o form para que ele reconheça e o valor apareça, como eu evitaria esse tipo de comportamento?

1 resposta

Fala ai Rodolfo, tudo bem? Na verdade você precisa chamar o setItem quando sua reposta retornar, ou seja, apenas quando tiver a resposta:

axios
    .get(
        "https://us-central1-onsurance-new.cloudfunctions.net/quote/tires",
        this.$data
    ).then(function(response) {
        self.cotacao = response.data;
        localStorage.setItem('resultadoCotacao', JSON.stringify(response.data));
      }

Ai na página de resultados está correto, talvez eu trocaria o created pelo updated.

Espero ter ajudado.