我正在使用Vue.js的Vue-strap警报组件。警报框工作正常,但是,我无法在指定的持续时间后自动关闭警报框。这是我正在使用的组件代码。
<alert :show.sync="showAlert" placement="top" duration="3000" type="success" width="400px" dismissable>
<span class="icon-info-circled alert-icon-float-left"></span>
<strong>Success</strong>
<p>{{alertMessage}}</p>
</alert>
单击关闭(x)按钮时,警告框将保持打开和关闭状态。这是一个使用警报组件的代码笔。
https://codepen.io/Taxali/pen/dKJpKY
有任何建议,如何在3秒后自动关闭警报框?谢谢。
答案 0 :(得分:1)
根据source code,仅当show
道具发生变化时才设置setTimeout(_,duration)。
因此,有一种解决方法,您可以在show
方法中将false
从true
切换为mounted
,也可以使用按钮切换提醒。
在Vue组件中setTimeout
自己的另一种方式。
var vm = new Vue({
components: {
alert:VueStrap.alert,
},
el: "#app",
data: {
alertMessage:"Activity Saved Successfully.",
showAlert:false
},
mounted() {
this.showAlert = true
}
})
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-strap/1.1.40/vue-strap.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
<div id="app">
<alert :show.sync="showAlert" placement="top" :duration="3000" type="success" width="400px" dismissable >
<span class="icon-info-circled alert-icon-float-left"></span>
<strong>Success</strong>
<p>{{alertMessage}}</p>
</alert>
</div>