初学者123
初学者123
  • 发布:2021-09-30 04:21
  • 更新:2021-09-30 10:38
  • 阅读:1242

从评论页面返回后实时刷新评论总数的实现

分类:uni-app

场景:从列表页点击评论按钮,进入评论页面,评论后返回列表页,希望被点击的列表项评论总数实时更新。

实现方法:

列表页template 中伪代码如下:

<view v-for(省略)>  
    <view @click="to_comment(item.post_id, item.id, index)">发表评论</view>  
</view>

onShow 中:

let index = uni.getStorageSync('index');  
let comment_count = uni.getStorageSync('comment_count');  
if (this.record_list.length != 0) {  
    this.record_list[index].comment_count = comment_count;  
}

methods中:

to_comment(post_id, o_user_id, index){  
    uni.setStorageSync('index', index);  
    uni.navigateTo({  
        url: '../comment/comment?post_id=' + post_id + '&o_user_id=' + o_user_id  
    })  
},

评论页面:

onLoad (){  
    this.get_comment_list()  
},  

methods: {  
    get_comment_list() {  
        uni.setStorageSync('comment_count', this.comment_list.comment_count)    //当不评论时,将评论总数缓存  
    },  
    comment(){  
        uni.setStorageSync('comment_count', this.comment_list.comment_count)    //如果有评论,更新缓存  
    }  
}

效果:可实现评论总数的实时更新,并且不用全页面刷新

1 关注 分享
hws007

要回复文章请先登录注册

苏陌

苏陌

我现在 再问你 文档写的清楚吗?
2021-09-30 10:38
苏陌

苏陌

回复 初学者123 :
这不就行了,熟读并背诵文档
2021-09-30 10:38
初学者123

初学者123 (作者)

感谢各位,我用uni.$on 方法也调通了。原来的错误是把方法直接写在 onload 的监听中,不起作用。现在的代码改成这样就好了:
```
onLoad(){
uni.$on('update_comment', this.get_comment)
}

onUnload(){
uni.$off('update_comment');
}

methods:{
get_comment(e){
let index = uni.getStorageSync('index');
this.record_list[index].comment_count = e.count;
},
}
```
发射没错,错在接收的姿势不对
2021-09-30 10:36
初学者123

初学者123 (作者)

```
uni.$emit('update_comment', {
count: this.comment_list.comment_count
})
```
2021-09-30 10:26
苏陌

苏陌

回复 初学者123 :
你把你用uni.$emit的代码发出来,我看看
2021-09-30 10:17
初学者123

初学者123 (作者)

回复 艾朗 :
帖一下代码可好?文档中的代码已经完全复制粘贴过了
2021-09-30 10:15
苏陌

苏陌

回复 初学者123 :
1223858862加我微信,免费的。
2021-09-30 10:10
艾朗

艾朗

回复 苏陌 :
哈哈 一般看到这些基础问题,而且文档很清楚的东西,没问会去回答,你耐心回答,他还问你试过吗?哎。。。。。。。。
2021-09-30 10:08
初学者123

初学者123 (作者)

回复 苏陌 :
没有质疑你啊,我就是试过了无效才那样说的。能否麻烦你把代码帖出来演习一下。我各种监听方法都试过了,在 onload 中无法实现页面返回监听,在 onshow 中虽然可以实现监听页面返回,但无法获取到 this 对象。真诚请教
2021-09-30 10:08
苏陌

苏陌

回复 初学者123 :
你进到页面在onload里面uni.$on()注册一个监听,你返回到这个页面,它会自动监听到,什么是监听?????字面意思,我好心给你讲基础的,你在质疑我,再见。
2021-09-30 10:02