Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript vuex存储无法在路由组件中触发_Javascript_Typescript_Vue.js - Fatal编程技术网

Javascript vuex存储无法在路由组件中触发

Javascript vuex存储无法在路由组件中触发,javascript,typescript,vue.js,Javascript,Typescript,Vue.js,我的vuex商店已经设置好,一切正常,但是,我只能在直接导入src App.vue的组件中提交我的突变 例如,Header.vue中的resetState会在我单击按钮时触发,因为它直接导入src/App.vue <template> <v-btn icon to="/" id="no-background-hover" @click="resetSta

我的vuex商店已经设置好,一切正常,但是,我只能在直接导入src App.vue的组件中提交我的突变

例如,Header.vue中的
resetState
会在我单击按钮时触发,因为它直接导入src/App.vue

<template>
      <v-btn
        icon
        to="/"
        id="no-background-hover"
        @click="resetState"
      >
          ///
      </v-btn>
</template>

<script lang="ts">
import Vue from 'vue'
import { MutationTypes } from '@/store/mutation-types'

export default Vue.extend({
  name: 'Header',

  methods: {
    resetState () {
      this.$store.commit(MutationTypes.RESET_STATE, 0)
    }
  },

})
</script>


出现问题的原因是在引用存储之前执行了“to=“/”,并且因为它刷新了页面,所以没有发送命令

以下是您应该如何做到这一点:


///
从“Vue”导入Vue
从“@/store/mutation types”导入{MutationTypes}
导出默认Vue.extend({
名称:'标题',
方法:{
重置状态(){
此.$store.commit(MutationTypes.RESET_状态,0)
window.location.href='/'
}
},
})

我找到了修复程序,只需将
路由器视图
包装到
保持活动状态
标签中

<keep-alive>
        <router-view/>
</keep-alive>


您看过Vue开发工具吗?控制台中有错误/警告吗?@Anatoly我有。没有错误,什么都没有你能分享你的
main.js
?@Prime我刚才就这么做了
<keep-alive>
        <router-view/>
</keep-alive>