uniapp路由跳转后通过uni.$emit和uni.$on页面通讯后,接收到数据但是却赋值不了

发布时间 2023-08-25 09:19:00作者: 芒果不忙-

原因:跳转到未渲染过的页面时,页面还没渲染就进行赋值操作,所以赋值不上去。

           如果往后跳转,可以使用 uni.$emit和uni.$on页面传值。即uni.navigateBack({delta:1}),尽量不要使用uni.navigateTo(会造成页面重叠)。

能够接收到数据并赋值。

解决办法:使用EventChannel

代码如下:

     传递页面:

		search() {
				uni.navigateTo({
					url: `/payment/searchForm`,
					 success: res=> {
						  res.eventChannel.emit('getData', this.searchForm)
					  }
				  })
			},

  接受页面·:

	onLoad() {
		    const eventChannel = this.getOpenerEventChannel();
			this.eventChannel=eventChannel
			eventChannel.on('getData', (data) => {
				console.log(data)
				this.searchForm=data
			});
		},