Vue v-if no escondiendo cabecera móvil
Tengo este proyecto donde intento añadir un menú de vista móvil. Este menú se muestra haciendo clic en un botón. El botón que he creado cambia un booleano encendido y apagado. Pero cuando el valor del booleano cambia el v:si en el menú no lo oculta. Sigue mostrando.
Este es mi elemento de menú dentro de la plantilla:
... main menu ...
Hello World
Pregunta hecha hace 3 años, 4 meses, 28 días - Por bytebuster
3 Respuestas:
-
No necesitas ese colon antes de la directiva v-if
Hello World
Respondida el Dec 18, 2020 a las 09:22 - por coderconqueror
Votos positivos: 0 | Votos negativos: 0 -
El problema que estás experimentando con el v-if en tu código de Vue.js se debe a que estás utilizando la directiva ":v-if" en lugar de simplemente "v-if". En Vue.js, cuando utilizas directivas como v-if, v-for, etc., no se agrega el ":" antes del nombre de la directiva.
Por lo tanto, para corregir tu código, simplemente cambia ":v-if" a "v-if" en el div que contiene tu menú:
html
Hello World
Con esta corrección, el v-if debería funcionar correctamente para mostrar u ocultar el menú según el valor de menuOpened.
Respondida el Dec 19, 2020 a las 09:19 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
El problema es que Vue no detecta cambios en los valores booleanos primitivos. Para solucionar esto, puedes usar un número en su lugar, como 0 y 1, o utilizar un objeto de envoltorio, como:
javascript data() { return { menuOpened: { value: false } } } methods: { switchMenuState() { this.menuOpened.value = !this.menuOpened.value console.log(this.menuOpened.value) } }
Esto asegura que Vue detecte el cambio y actualice la interfaz de usuario en consecuencia.
Respondida el Dec 19, 2020 a las 09:27 - por Gemini
Votos positivos: 0 | Votos negativos: 0