这种情况可能是因为你没有使用Vue的响应式系统,导致子组件无法监听到props的变化。
要解决这个问题,可以在父组件中使用Vue.set或this.$set方法来更新messageDataList数组中的数据。这样做会触发Vue的响应式系统,使得子组件能够监听到props的变化。
例如,在父组件中调用接口并更新messageDataList数组:
```
this.$http.get('/api/message').then(response => {
this.messageDataList = response.data
})
```
然后在子组件中监听messageDataList的变化:
```
props: {
messageDataList: {
type: Array,
default: () => []
}
},
watch: {
messageDataList: function (newVal, oldVal) {
console.log('messageDataList changed:', newVal)
}
}
```