watch 有时候会监听不到

因为公司不能带源码出来,所以这里就用文字描述这个问题了;
在父组件里,有上下两个子组件,上面的子组件是搜索栏,下面的组件是ehcart图表,用户选完搜索项后点击搜索向后台请求数据,用watch监听请求回来的数据,一旦有数据返回,立马存入vuex的state中;下面的echart组件同时也监听这个state,一旦数据发生变化,就调用我封装的echart函数,将数据渲染出来,有几个页面都用到了这两个组件,而且页面都是一模一样,只是接口不同,返回的数据不同;
问题就来了,在其他页面都是好好地,但是其中的某一个页面的watch监听事件没有触发,我用vue的调试工具发现vuex中的数据明明改变了,但是却并没有触发watch事件,如果连续在这几个并列的页面中来回切换,这个watch事件就会偶然触发一两次,刷新页面也可以触发;
百度后发现要用watch监听数组要用深度监听,不然没有效果,但是我其他页面返回的数据也是数组啊,只是字段名称不一样而已,不知道为什么会出现这样的问题

弑天下
浏览 877回答 1
1回答

郎朗坤

我也碰到过这样的问题,最后改用事件总线eventBus实现
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript