使用场景:
前提条件:当我们从一个列表页面,进入新增页面,
情况1:在新增页面,信息添加成功后,返回列表页面,此时,需要更新列表数据;
情况2:在新增页面,没有添加信息,直接返回列表页面,此时,不需要更新列表数据
针对以上情况,具体实现如下:
列表页面A,代码内容如下:
javascript
import { onShow } from '@dcloudio/uni-app'
onShow(() => {
// 当从添加页面返回时,如果有数据更新,则需要刷新列表
uni.$on('update', (e: boolean) => {
// 为true时,表示需要更新数据
if (e) {
page.value = 1
total.value = 0
getList()
}
})
})
添加页面B,代码内容如下:
javascript
// 确认添加信息
const confirmSubmit = async () => {
try {
btnLoading.value = true
// 执行对应接口
await interfaceName(params)
// 添加成功时,返回列表页面,需要重新刷新数据
uni.$emit('update', true)
// 添加成功之后,才返回列表页面
uni.navigateBack()
} catch (e) {
console.log(e)
} finally {
btnLoading.value = false
}
}
注意: 页面之间传参,通过uni.emit('update', params)与uni.on('update', (e: boolean) => {})实现
大家如有其他更好的方法,欢迎大家留言评论。如果有错误的地方,也请大家及时指出,非常感谢!