微信小程序页面之间通信

一.通过字符串拼接方式
wxml代码块

<view class="border-black margin-left-right-25" style="flex:1" 
                              bindtap="testDrive" data-type="{{item.type}}" data-typename="{{item.typename}}">预约试驾</view>

js代码块

testDrive: function (e) {
	var type = e.currentTarget.dataset.type;
	var typename = e.currentTarget.dataset.typename;
	wx.navigateTo({
	    url: '/pages/sales/sales-test?type=' + type + "&typename=" + typename,  //值的传递
	})
},
//在sales-test.js页面进行获取传递过来的值
onLoad: function (options) {
	let type= options.type
	let typename=options.typename
}

二.eventChannel.emit()和eventChannel.on()结合使用.传递对象或者数组
1.如果跳转成功:通过eventChanel.emit(string eventName, any args)触发一个事件

wx.navigateTo({
url: '/pages/sales/sales-order',
success: function (res) {
	// 通过eventChannel向被打开页面传送数据
	res.eventChannel.emit('acceptData', { carData: _this.data.carData,agentData:_this.data.agentData })
	}
})

.2.子页面监听接收触发事件的值

const eventChannel = this.getOpenerEventChannel()
var _this=this;
eventChannel.on('acceptData', function (data) {
	_this.setData({
	carData:data.carData,
	agentData:data.agentData

})

三.通过getApp().globalData设置值和获取值
1.getApp().globalData.属性名=值方式

    getApp().globalData.adresstext = item.text
    getApp().globalData.lat = item.location.lat
    getApp().globalData.lng = item.location.lng
    getApp().globalData.type=_this.data.type

2.getApp().globalData.属性名获取

   that.setData({
     dynamicFromStation: getApp().globalData.adresstext
   })

你可能感兴趣的:(微信小程序页面之间通信)