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

140
Visualizações
How to correctly share reactive variables setted on onMounted hook in Vue 3's composition API?

please read the following (wrong) code. How can I fix it?

My problem is that I'm trying to share several variables, which should be reactive, between different composables and the main app.

All those variables need DOM to be assigned, thus, they need onmounted hook. So useDropzones and usePanels both assign variables onmounted as well as the main app. And all those variables are cross-used between the cited entities. But in fact, they will be all undefined, quite obviously. How to fix?

const vueapp = Vue.createApp({

  setup(props, {attrs, slots, emit}){

    let validators = reactive([]);
    let panels = reactive([]);
    let code = null;

    useDropzones(code); // assigned by main app's onMounted
    usePanels(panels, validators); // it will populate panels, onmounted, used by main app below, onmounted

    onMounted(() => {
      nextTick(() => {

        code = form_elem.find('input[name="form-code"]').val(); // here I'm setting code variable, used by useDropzones()

        _.each(panels, function(panel, index){ // TODO: native?
          // execute code that populates validators, used by usePanels()
        }.bind(this));

      }); // nexttick
    }); // onmounted

    return {}
  },

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

0

Move the useDropzones(code) call into onMounted() when you've set code to the element reference:

Vue.createApp({
  setup() {
    // ⛔️ moved into onMounted
    // let code = null;
    // useDropzones(code);

    onMounted(() => {
      nextTick(() => {
        const code = form_elem.find('input[name="form-code"]').val();
        useDropzones(code);
      })
    })
  }
})
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