uniapp路由传参的形式有2种,一种是url携带key-value
参数,另一种是通过事件emit
发送数据。
key-value形式
- navigator组件传参
接收参数 在onLoad(options)函数获取值
<navigator url="../about/index?type=1&show=1" open-type="navigate">
<button type="default">下一步</button>
</navigator>
- api传参
接收参数 在onLoad(options)函数获取值
uni.navigateTo({
url: '../about/index?type=1&show=1'
})
emit事件形式
- 传递到下一个页面
接收参数在onLoad函数值注册事件
// 传参
uni.navigateTo({
url: '/pages/one/one',
success: function(res) {
res.eventChannel.emit('eventName', {
data: '1'
})
}
})
// 接收参数
onLoad(option) {
const eventChannel = this.getOpenerEventChannel();
eventChannel.on('eventName', function(data) {
console.log(data)
})
}
- 传参给上级页面
获取参数在路由api配置对象中配置event选项
// 传参
back(){
uni.navigateBack();
const eventChannel = this.getOpenerEventChannel();
eventChannel.emit("eventName", { data: '2' });
}
//获取参数
uni.navigateTo({
url: '/pages/one/one',
event: eventName(data) {
console.log(data);
}
})