vue 数组值没有变化,但可以用watch监听到。
问题描述
vue 从接口取到数据,赋值给某个值,将这个值传给子组件,在子组件中监听该值变化,事实上数据没有改变,但watch一直在执行。请问这是为什么?该如何解决。
问题出现的环境背景及自己尝试过哪些方法
我尝试在接口返回结果时,用 json.stringify() 格式化结果,这个可以满足我的需求。
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
// 子组件
watch: {
foodData(val, oldval) {
console.log(val, oldval)
},
},
// 父组件
async getData () {
let res = await this.$store.dispatch('getFoodData');
this.foodData = res;
},
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为foodData重新赋值,foodData是引用类型,引用是改变了的
加个判断,拿到值再赋值;
在子组件监听中重新赋值,
watch: {
}