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

153
Visualizações
¿Cómo puedo establecer el valor de entrada solo una vez en valor dinámico y luego mantener el valor modificado?

en un bucle for tengo un elemento de entrada (número de tipo) cuyo valor quiero modificar mediante un botón de disminución y aumento:

 <div class="s-featured-list__item s-featured-list__item--expandable" v-for="(item, itemIndex) in category.items" :key="item"> <button class="button--decrease" @click="decreaseInput(catIndex, itemIndex)"> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> <use href="#icon-minus-16" xlink:href="#icon-minus-16"></use> </svg> </button> <input class="stepper__input" :ref="'fooditem_' + catIndex + '_' + itemIndex" :value="item.min !== '' ? item.min : 1" :min="item.min !== '' ? item.min : 1" type="number" > <button class="button--increase" @click="increaseInput(catIndex, itemIndex)"> <svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> <use href="#icon-plus-16" xlink:href="#icon-plus-16"></use> </svg> </button> </div>

Estoy configurando el atributo mínimo de forma condicional y también quiero establecer el valor inicial del elemento en el valor mínimo correcto.

Esto funciona bien y también la disminución y el aumento funcionan bien con los siguientes métodos:

 <script> export default { ... methods: { decreaseInput(catIndex, itemIndex) { const item = this.$refs[`fooditem_${catIndex}_${itemIndex}`]; if(item && item[0] && parseInt(item[0].min) < parseInt(item[0].value) ){ item[0].value = item[0].value - 1; } }, increaseInput(catIndex, itemIndex) { const item = this.$refs[`fooditem_${catIndex}_${itemIndex}`]; if(item && item[0]){ item[0].value = parseInt(item[0].value) + 1; } } } } </script>

Mi problema es que cada vez que el componente se vuelve a renderizar (por ejemplo, porque estoy modificando un valor o lo que sea), el valor de la entrada se vuelve a establecer en el valor mínimo.

¿Cómo configuro el valor solo una vez al valor mínimo y luego conservo el valor modificado por el usuario?

¡Gracias de antemano por tu ayuda!

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

0

Puede declarar una variable y establecer su valor en el valor mínimo y luego, cada vez que el componente se renderice nuevamente, establecerá su valor en su valor mínimo. Espero que consigas lo que quieres.

about 4 years ago · Juan Pablo Isaza Relatório

0

La solución más fácil debería ser usar la directiva de plantilla v-once .


Ver también VueJS renderizar una vez en un elemento .

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