接到一個指示說 要做隱藏按鈕依照特定的順序 按下 才會進入某個頁面 要在vue 底下做這件事情
我的想法是
坐四個按鈕 設為false
left: false,
right: false,
bottomleft: false,
bottomRight: false
點擊按鈕為true
<v-btn @click="left = true">left</v-btn>
<v-btn @click="right = true">right</v-btn>
<v-btn @click="bottomleft = true">bottomleft</v-btn>
<v-btn @click="bottomRight = true">bottomRight</v-btn>
然後在mounted 下設定只要四個buttn 都為真 就可以自動跳轉某頁面
mounted () {
if (this.left === true && this.right === true && this.bottomleft === true && this.bottomRight === true) {
alert('123')
this.$router.push({ name: 'Home' })
} else {
this.$router.push({ name: 'Costomer' })
}
}
但是沒有效果椰,是說寫錯了嗎? 還是不應該這樣設?希望能提供一個方向 解答
後來我改由watch 監聽
這樣寫對嗎?
<v-btn @click="left = !left" class="left">left</v-btn>
<v-btn @click="right = !right" class="right">right</v-btn>
<v-btn @click="bottomleft = !bottomleft" class="bottomleft">bottomleft</v-btn>
<v-btn @click="bottomRight = !bottomRight" class="bottomRight">bottomRight</v-btn>
methods: {
mountedApi () {
if (this.left === true && this.right === true && this.bottomleft === true && this.bottomRight === true) {
this.$router.push({ name: 'Home' })
} else {
alert('123')
}
}
},
watch: {
$route: 'mountedApi'
}
你寫在 mounted 內是錯的。
因為那是在載入頁面完成後才運行的。
所以你的寫法是錯的。
你因該要在 methods 寫一個函數來處理。
將四個按鍵的觸發動作都跑這個函式。