Я использую VueJS и метод Vue mixin, как этот, чтобы этот метод toast был доступен в моих компонентах:
Vue.mixin({
methods: {
makeSuccessToast(message, toaster) {
this.$bvToast.toast(message, {
title: 'Success',
variant: 'success',
toaster: toaster || 'b-toaster-bottom-right',
solid: true,
autoHideDelay: 2000,
noHoverPause: true,
appendToast: true,
});
},
},
});
Он не работает при вызове этого метода через setTimeout или setIntervall или при откате его с loda sh. Он просто не будет работать при попытке сделать тосты с помощью помощника тостов bootstrap vue из основного процесса l oop. Кто-нибудь знает исправление для него?
Пример, когда оно не будет работать внутри VueJS компонента:
через setTimeout
в компоненте method
:
doSomething() {
setTimeout(() => {this.makeSuccessToast('Something happened')}, 2000);
}
via loda sh debounce:
data(){
this.dsth: ()=>{};
},
methods:{
doSomething() {
this.makeSuccessToast('Something happened');
}
},
mounted() {
this.dsth = this._.debounce(this.doSomething, 5000);
}
Edit :
Я не осознавал, что делал Toast в компоненте, который получает удален. Тост должен был быть уведомлением об удалении этого компонента. Тосты будут исчезать sh, как только компонент будет удален, поэтому я подумал, что он не работает. Решение состояло в том, чтобы отправить тосты на элемент root в методе Mixin:
this.$root.$bvToast.toast(...)