Lid*_* K. 6 javascript vuex vuejs2 vuetify.js
我正在寻找一种解决方案来重置 vuetify 中的 Snackbar 超时。
例如,当登录时收到 api 响应时,我会打开 Snackbar:
if (data.status == "success") {
this.$router.push({ name: "dashboard" });
this.$store.commit("snackbar/open", {
color: "success",
text: data.message
});
} else {
this.$store.commit("snackbar/open", {
color: "error",
text: data.message
});
this.apiErrors = data.errors;
}
Run Code Online (Sandbox Code Playgroud)
我的观点是,我第一次登录时出现错误 - 显示小吃栏,然后我快速更改数据以纠正小吃栏的颜色和消息更改,但可见时间不会再次计算,它是基于旧的。我怎样才能做到这一点,以便每次打开小吃栏时都会重置时间?我的意思是,如果小吃栏可见并且我打开另一个,时间就会重新计算。
应用程序.vue
<template>
<v-app>
<v-main class="grey lighten-3">
<router-view></router-view>
<Snackbar />
</v-main>
</v-app>
</template>
<script>
import Snackbar from "./components/Snackbar";
export default {
name: "App",
components: {
Snackbar
}
};
</script>
Run Code Online (Sandbox Code Playgroud)
小吃吧.module.js
const state = {
visible: false,
color: "success",
text: "",
timeout: 4000
}
const mutations = {
open(state, payload) {
state.text = payload.text;
if (payload.color) { state.color = payload.color; }
if (payload.timeout) { state.timeout = payload.timeout; }
state.visible = true;
},
close(state) {
state.visible = false;
state.text = "";
}
}
export default {
namespaced: true,
state,
mutations
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
325 次 |
| 最近记录: |