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

167
Visualizações
Vue JS emite un evento al componente secundario desde el componente principal que no se activa

Estoy trabajando en un proyecto de Nuxt JS. Tengo varios componentes, y uno de mis componentes llamado ComplianceOptoutRawText incluye un componente secundario llamado ComplianceOptoutViaExternalService , y es este componente secundario donde estoy usando un v-on para escuchar un evento $emit de ComplianceOptoutRawText para poder alternar una variable, pero no lo veo en absoluto en los registros de mi consola y necesito saber qué estoy haciendo mal y necesito cambiar.

Aquí está mi marcado con todo lo que es apropiado:

CumplimientoOptoutRawText

 <template> <div> <div> <div class="tw-hidden md:tw-block tw-font-bold tw-mb-4"> <ComplianceOptoutViaExternalService> <template #trigger> <button @click="$emit('shown-optout-intent', true)" type="button">here</button> </template> </ComplianceOptoutViaExternalService> </div> </div> </div> </template>

Y luego el propio componente hijo:

CumplimientoOptoutViaExternalService

 <template> <div> <slot name="trigger"></slot> <article v-show="wantsToOptOut" v-on:shown-optout-intent="hasShownOptoutIntent" class="tw-bg-white tw-p-4 md:tw-p-6 tw-rounded-xl tw-text-gray-800 tw-border tw-border-gray-300 tw-text-left tw-mt-4"> <validation-observer v-if="!didOptOut" ref="optoutServiceForm" key="optoutServiceForm" v-slot="{ handleSubmit }" tag="section"> <form> ... </form> </validation-observer> </article> </div> </template> <script> export default { data () { return { wantsToOptOut: false, isOptingOut: false, didOptOut: false } }, methods: { /* ** User has shown opt out intent */ hasShownOptoutIntent (value) { this.wantsToOptOut = !this.wantsToOptOut } } } </script>

Tenga en cuenta que mi componente secundario usa una ranura, esto es para que pueda colocar todo según sea necesario en el componente principal, pero en esencia, tengo un componente principal que emite un valor y luego lo escucha a través v-on:shown-optout-intent="hasShownOptoutIntent" que ejecuta el método hasShownOptoutIntent .

Pero nunca veo nada desde el botón, incluso si consola.log esto. ¿Qué me estoy perdiendo?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Estoy haciendo algo similar con un componente incrustado, por lo que quizás valga la pena intentarlo:

 <button @click="$emit('update:shown-optout-intent', true)" type="button">here</button>

... y entonces:

 v-on:shown-optout-intent.sync="hasShownOptoutIntent"

Aparte, es seguro eliminar v-on y usar: :shown-optout-intent .

about 4 years ago · Juan Pablo Isaza 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