uniapp返回上一頁攜帶參數,兩種方法,實測有效


方法一:

  • pages/pre/pre.vue
<template>
	<view>
		<view>返回的數據為:</view>
		<view>id: {{testdata.id}}</view>
		<view>name: {{testdata.name}}</view>
		<button type="primary" @click="goNext">跳轉到下一頁面</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				testdata: {
					id: '',
					name: ''
				}
			}
		},
		onShow() {
			let that = this
			uni.$on('updateData',function(data){
				that.testdata = data
				const params = 'id:'+data.id+', name:'+data.name;
				console.log('監聽到事件來自 updateData ,攜帶參數為:' + params);
			})
		},
		methods: {
			goNext() {
				uni.navigateTo({
					url: '/pages/next/next'
				})
			}
		}
	}
</script>

<style>

</style>
  • pages/next/next.vue
<template>
	<view>
		<button type="primary" @click="goBack">點擊返回上一頁</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				mydata: {
					id: 1,
					name: 'test'
				}
			}
		},
		methods: {
			goBack() {
				uni.$emit('updateData', this.mydata)
				uni.navigateBack({
					delta: 1
				})
			}
		}
	}
</script>

<style>

</style>

方法二(相對來說,沒有方法一簡練):

  • pages/pre/pre.vue
<template>
	<view>
		<view>返回的數據為:</view>
		<view>id: {{testdata.id}}</view>
		<view>name: {{testdata.name}}</view>
		<button type="primary" @click="goNext">跳轉到下一頁面</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				testdata: {
					id: '',
					name: ''
				}
			}
		},
		onShow() {
			let pages = getCurrentPages();
			let currPage = pages[pages.length - 1]; //當前頁面
			if(currPage.data != undefined){
				let json = currPage.data.testdata;
				this.testdata = json;
			}
		},
		methods: {
			goNext() {
				uni.navigateTo({
					url: '/pages/next/next'
				})
			}
		}
	}
</script>

<style>

</style>
  • pages/next/next.vue
<template>
	<view>
		<button type="primary" @click="goBack">點擊返回上一頁</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				mydata: {
					id: 1,
					name: 'test'
				}
			}
		},
		methods: {
			goBack() {
				var pages = getCurrentPages();
				var prevPage = pages[pages.length - 2];
				// #ifdef H5
				prevPage.$vm.testdata = this.mydata;
				// #endif
				// #ifdef MP-WEIXIN
				 prevPage.setData(this.mydata);
				// #endif
				uni.navigateBack({//返回
					delta: 1
				})
			}
		}
	}
</script>

<style>

</style>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM