在页面加载时,我从服务器接收一组对象,这些对象使用v-for
循环显示。
应用程序是实时的,所以当另一个用户更新数组中的对象时,我会收到一个包含更新对象的推送事件(这是一个包含更新模型的Laravel 5.4广播事件)。
如何在数组中找到该对象以将其替换为更新版本?
示例组件JS
export default{
data(){
return {
items: []
}
},
mounted(){
...some code to get the array from the server
this.items = server.response;
},
created() {
Echo.private('channel-name)
.listen('event', (event) => {
**What do I do here with the received model to update the items array?**
});
});
}
}
答案 0 :(得分:2)
我认为您的item
实体中应该有一些ID,然后只需查找具有相同ID的项目并替换它。例如,可以使用map:
...
//assuming you have ID inside your item entity
//and your new "replacement" model is in event.item
.listen('event', (event) => {
var newItem = event.item;
this.items = this.items.map(item => {
return item.ID === newItem.ID ? newItem : item;
});
});
...