我有一个Vuexstore ,状态如下:

state: {
    authed: false,
    id: false
}

在一个组件中,我想观察authed状态的变化,并向服务器发送一个AJAX调用.它需要在不同的组件中完成.

我试着使用store.watch(),但当idauthed发生变化时就会触发.我还注意到,它与vm.$watch的不同之处在于不能指定属性.当我try 这样做时:

store.watch('authed', function(newValue, oldValue){
  //some code
});

我犯了这个错误:

[vuex] store.watch only accepts a function.

感谢您的帮助!

推荐答案

只需在组件中为authed个状态设置一个getter,然后观察本地getter:

watch: {
  'authed': function () {
    ...
  }
}

Vue.js相关问答推荐

Vue 2 如何在全局函数中返回观察者

有没有办法在 Quasar 中为明暗模式创建我自己的 colored颜色 ?

Vue 和 Nuxt 之间生命周期钩子的不同行为

如何在 vue 路由中导航到 Bootstrap-vue 选项卡中的特定选项卡?

云Firestore保存额外的用户数据

有条件地在 Vue 中添加一个 CSS 类

Vue:如何将 store 与组件一起使用?

如何在 Vue.js 中使用 MaterializeCss?

ECMA6 中 nameFunction() {} 和 nameFunction () => {} 的区别

Amazon EC2 错误:监听 EACCES 0.0.0.0:80

vue js 中的 process.env.BASE_URL 是什么?

Vue 组件中的组件渲染函数中可能存在无限更新循环警告

根据路由动态插入 CSS 类到导航栏

'vue' 未被识别为内部或外部命令

错误:找不到模块'@vue/babel-preset-app'

在vue中单击时如何模糊元素

Vue Cli 3:定义的输出路径

如何从扩展面板(Vuetify)中删除阴影?

TypeError: Object(...) 不是 Vue 中的函数

为什么 router.currentRoute.path 没有react?