我正在尝试在VueJs
中构建一个小应用程序,
以下是我的数据集:
data(){
return {
pusher: '',
channel:'',
notify: [],
notifications: '',
notificationsNumber: '',
}
},
我在组件的created属性中有一个axios调用:
axios.get('api/notifications', {headers: getHeader()}).then(response => {
if(response.status === 200)
{
this.notify = response.data.notifications
this.notificationsNumber = this.notify.length
}
}).catch(errors => {
console.log(errors);
})
我已经实现了pusherJs
,所以我有以下代码:
this.pusher = new Pusher('xxxxxxxx', {
cluster: 'ap2',
encrypted: true
});
var that = this
this.channel = this.pusher.subscribe('stellar_task');
this.channel.bind('company_info', function(data) {
console.log(data.notification);
that.notifications = data.notification
});
一旦从推送器获取值,我想将此推送到我的数组通知为watch属性,如下所示:
watch: {
notifications(newValue) {
this.notify.push(newValue)
this.notificationsNumber = this.notificationsNumber + 1
}
}
所以问题是我通过pusher接收的数据格式是对象形式,并且推送功能没有在这里实现:
截图:
帮我解决这个问题。
答案 0 :(得分:0)
我假设response.data.notifications
是数组对象。
所以你要做的就是:
this.notify = [...response.data.notifications];