Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

99
Visualizações
Pasar valor a métodos

Soy totalmente nuevo en Vue, así que sé amable :)

Tengo una función que obtiene los atributos del usuario y, según el atributo, puedo ejecutar una consulta de graphql en otra función. Ambas funciones están en los métodos y se llaman en el ciclo de vida creado. Lo que hice fue asignarlo a una variable y representarlo en el DOM. Pero no puedo pasarlo en la función que quiero. Intenté ejecutar cada función en diferentes ganchos de ciclo de vida, pero no funcionó.

 export default defineComponent({ name: 'IndexPage', data: function() { return { token: '', redirectUrl: '', authUser: '' } }, methods:{ async setUser() { this.authUser = authUser }, async getAtt() { Auth.currentAuthenticatedUser() .then(data => (this.authUser = data.attributes['custom:learn_url'])) .catch(err => console.log(err)); }, async getUrl() { const id = this.authUser; // This is where i want the id to assign the authUser value const learnUrl = await API.graphql({ variables: { id }, query: getLearnUrl }); this.redirectUrl = learnUrl.data.getLearnUrl.learnUrl; } }, created() { this.getAtt(); this.getUrl(); } })
about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Creo que el problema podría estar en su método created() . Está llamando a un método asíncrono getAtt() , por lo que debe esperar a que se complete antes de poder usar la variable authUser que obtuvo anteriormente en la función getUrl() , de lo contrario, siempre estará vacía.

Cambie created() a asíncrono y espere las funciones.

Ejemplo

 async created() { await this.getAtt(); await this.getUrl(); }
about 4 years ago · Santiago Trujillo Relatório

0

Además de la sugerencia de Tamas, también deberá esperar el resultado de la función Auth.currentAuthenticatedUser() .

 export default defineComponent({ name: 'IndexPage', data: function() { return { token: '', redirectUrl: '', authUser: '' } }, methods:{ async setUser() { this.authUser = authUser }, async getAtt() { await Auth.currentAuthenticatedUser() // 👀 .then(data => (this.authUser = data.attributes['custom:learn_url'])) .catch(err => console.log(err)); }, async getUrl() { const id = this.authUser; // This is where i want the id to assign the authUser value const learnUrl = await API.graphql({ variables: { id }, query: getLearnUrl }); this.redirectUrl = learnUrl.data.getLearnUrl.learnUrl; } }, async created() { await this.getAtt(); this.getUrl(); } })
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda