Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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_Vue.js_Vuex - Fatal编程技术网

Javascript 监视程序不使用Vuex

Javascript 监视程序不使用Vuex,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,我的组件中的数据更改时未触发监视程序,这是我遇到的问题。数据中的属性是被动的,因为它是在组件创建时设置的,而不是以后设置的 下面是一段代码,其中的问题是: 为了更详细地解释,status属性从父对象获取其状态,intern从Vuex状态对象获取它,它正在成功地传递到组件,因为我能够记录并更改它 然而,当我设置一个观察者,在其值发生变化时执行一个函数时,它不会触发。无论我如何进行更改—无论是使用组件的内部方法还是事件 我需要的是观察者在状态属性更改时触发,但不确定为什么它根本不反映它 其结构如下

我的组件中的数据更改时未触发监视程序,这是我遇到的问题。数据中的属性是被动的,因为它是在组件创建时设置的,而不是以后设置的

下面是一段代码,其中的问题是:

为了更详细地解释,status属性从父对象获取其状态,intern从Vuex状态对象获取它,它正在成功地传递到组件,因为我能够记录并更改它

然而,当我设置一个观察者,在其值发生变化时执行一个函数时,它不会触发。无论我如何进行更改—无论是使用组件的内部方法还是事件

我需要的是观察者在状态属性更改时触发,但不确定为什么它根本不反映它

其结构如下:BottomBar是父级,bool值作为属性传递给Spin.vue作为属性,然后将该属性指定给子组件上的数据属性


bool值本身来自index.js,Vuex实例位于index.js中

在控制台中,它显示以下两个错误

[vuex] unknown getter: isSpinning
[vuex] unknown mutation type: spinIt
问题似乎在于商店是如何建立的。试试这个

export const store = new Vuex.Store({
  state: {
    controls: {
      spin: false
    }
  },
  getters: {
    isSpinning: state => {
      return state.controls.spin;
    }
  },
  mutations: {
    spinIt(state) {
      return (state.controls.spin = !state.controls.spin);
    }
  }
});

你有你的突变和获得者坐在你的状态。我将它们移到了外部,并更新了内部的引用,以使代码按预期工作