V-если не показывает блок не показывать - PullRequest
0 голосов
/ 29 августа 2018

В аутентификации пользователя, Я попытался изменить домашний дисплей и показать «Добро пожаловать» и «Выход»

Моя проблема в том, что значения v-if не изменяются с router.push. Я должен обновить страницу, чтобы показать эти блоки

<template>
    <div>
        <form class="login" @submit.prevent="login">
            <h1>Sign in</h1>
            <label>Email</label>
            <input required v-model="email" type="email" placeholder="Name"/>
            <label>Password</label>
            <input required v-model="password" type="password" placeholder="Password"/>
            <hr/>
            <button type="submit">Login</button>
        </form>
    </div>
</template>

<script>
    export default {
        data(){
            return {
                email : "",
                password : ""
            }
        },
        methods: {
            login: function () {
                let email = this.email 
                let password = this.password
                this.$store.dispatch('login', { email, password })
                    .then(() => this.$router.push('/'))
                    .catch(err => console.log(err))
            }
        }
    }
</script>

и app.vue: Шаблон:

 <span v-if="isLoggedIn"> {{user.email}} </span>
 <span v-if="isLoggedIn"> | <a @click="logout">Logout</a></span>

в сценарии:

computed : {
    isLoggedIn : function(){ return this.$store.getters.isLoggedIn}
}
...