onLoad()页面加载执行,因为函数是从上到下执行的,所以调用方法和获取页面传递过来的值时,顺序要注意一下

<script>
	export default {
		data() {
			return {
				id:0,
				detail:{}
			}
		},
		methods: {
		async getNewsDetail(){
			console.log('yyyy'+this.id);
			const res = await this.$myRuquest({
					url:'/api/getnew/'+this.id,
					
				})
				console.log(res)
			this.detail = res.data.message[0]
			}
		},
		onLoad(options){
			
			this.getNewsDetail()
			this.id = options.id
		    // console.log(options.id);
		}
	}
</script>

如上图,代码没错,但是先调用的函数,所以当函数执行时id的值还是0,并没有将id赋值成功,所以参数是空

正确写法

<script>
	export default {
		data() {
			return {
				id:0,
				detail:{}
			}
		},
		methods: {
		async getNewsDetail(){
			console.log('yyyy'+this.id);
			const res = await this.$myRuquest({
					url:'/api/getnew/'+this.id,
					
				})
				console.log(res)
			this.detail = res.data.message[0]
			}
		},
		onLoad(options){
			this.id = options.id
			this.getNewsDetail()
		
		    // console.log(options.id);
		}
	}
</script>
Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐