微信小程序 跳转传递参数
时间: 2023-07-24 21:35:02 浏览: 58
要在微信小程序中进行页面跳转并传递参数,可以使用wx.navigateTo或wx.redirectTo方法。这两种方法的区别在于,前者会保留当前页面,后者则会关闭当前页面。在跳转时,可以在url中添加参数。例如:
```
wx.navigateTo({
url: '/pages/detail/detail?id=123'
})
```
在跳转后,可以在目标页面的onLoad函数中通过options参数获取传递的参数。例如:
```
Page({
onLoad: function(options) {
console.log(options.id) // 输出 123
}
})
```
如果需要传递复杂的数据结构,可以使用JSON.stringify和JSON.parse方法进行序列化和反序列化。例如:
```
wx.navigateTo({
url: '/pages/detail/detail?data=' + encodeURIComponent(JSON.stringify({id: 123, name: 'test'}))
})
```
在目标页面中可以这样获取参数:
```
Page({
onLoad: function(options) {
console.log(JSON.parse(decodeURIComponent(options.data))) // 输出 {id: 123, name: 'test'}
}
})
```
相关问题
微信小程序跳转页面传递数组
微信小程序跳转页面时,如果要传递数组对象,可以使用JSON.stringify()将数组转换成json字符串格式,然后在跳转时将该字符串作为参数传递。例如,使用wx.navigateTo()跳转页面时,可以这样写代码:wx.navigateTo({ url:'../../pages/SHsb/SHsb?DLpeople='+JSON.stringify(DLpeople) })。在接收端页面中,可以使用JSON.parse()将接收到的json字符串还原成数组对象进行使用。这样就可以成功传递和使用数组对象了。\[2\]\[3\]
#### 引用[.reference_title]
- *1* *3* [微信小程序页面间传递数组对象](https://blog.csdn.net/weixin_44838589/article/details/117490397)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [微信小程序-页面之间数据的传递](https://blog.csdn.net/m0_48294567/article/details/125485732)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
微信小程序 页面跳转传递对象
在微信小程序中,当需要在页面跳转时传递对象参数,可以采用以下几种方式:
1. 将对象转换成字符串并作为参数传递。可以使用`JSON.stringify()`方法将对象转换成字符串,然后在跳转时将字符串作为参数传递。在接收参数的页面,可以使用`JSON.parse()`方法将字符串转换回对象。例如,在跳转页面时可以使用以下代码:
```
var userInfo = JSON.stringify(this.data.userInfo);
wx.navigateTo({ url: "../info/info?userInfo=" + userInfo })
```
在接收参数的页面可以使用以下代码将字符串转换回对象:
```
var userInfo = JSON.parse(options.userInfo);
```
2. 使用全局变量传递参数。在app.js文件中定义一个全局变量,将需要传递的对象赋值给该变量。在跳转页面时,可以直接访问全局变量获取参数。例如,在传递参数的页面可以使用以下代码:
```
const app = getApp();
app.globalData.info = "info";
```
在接收参数的页面可以使用以下代码获取参数:
```
const app = getApp();
console.log('通过app.js全局变量传递参数', app.globalData.info);
```
需要注意的是,当通过`wx.switchTab`跳转到tabBar页面时,无法直接传递参数。但可以通过全局变量的方式在app.js中传递参数。
#### 引用[.reference_title]
- *1* [微信小程序页面跳转传递Json对象参数](https://blog.csdn.net/anLazyAnt/article/details/74332368)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [微信小程序页面跳转如何传递对象参数](https://blog.csdn.net/weixin_38131507/article/details/103029896)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [微信小程序开发-页面跳转传递参数](https://blog.csdn.net/duzang1776/article/details/122914472)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]