我正在构建一个使用 Bootstrap Vue 来显示模式窗口的 Vue CLI 应用程序(Webpack 模板)。我正在尝试从我的 Vue 组件的钩子中以编程方式显示模态(参见 Bootstrap Vue文档以编程方式调用模态),如下所示:mounted()
<script>
export default {
name: 'ButtonComponent',
mounted() {
const showModal = sessionStorage.getItem('showModal');
if (showModal === 'yes') this.$refs.myModal.show();
}
}
</script>
这工作得很好。但是,如果我引入这样的setTimeout()
功能,我将无法使其工作:
<script>
export default {
name: 'ButtonComponent',
mounted() {
const showModal = sessionStorage.getItem('showModal');
if (showModal === 'yes') setTimeout(() => this.$refs.myModal.show(), 3500);
}
}
</script>
为什么这在 3.5 秒后不显示模态?超时有效,我知道这是因为我尝试console.log()
从中获取消息。我认为这可能是因为 Vue JS 实例在计时器内不可用,所以我尝试声明 aconst self = this;
并调用setTimeout(() => self.$refs.myModal.show(), 3500);
,但这也无济于事。我在这里想念什么?