小程序navigateback传值_微信小程序 页面跳转传递值几种方法详解
时间: 2023-07-24 13:39:57 浏览: 67
微信小程序页面跳转传递值的几种方法如下:
1. 使用wx.navigateTo和wx.navigateBack函数的url参数传递值
在源页面使用wx.navigateTo函数跳转到目标页面时,可以在url参数中携带需要传递的值。例如:
```
wx.navigateTo({
url: '/pages/target/target?id=123&name=test'
})
```
在目标页面的onLoad函数中可以获取这些值:
```
onLoad: function(options) {
console.log(options.id) // 输出123
console.log(options.name) // 输出test
}
```
如果要在目标页面中修改这些值并返回到源页面,则可以使用wx.navigateBack函数的delta参数和wx.getCurrentPages函数获取源页面实例对象,然后调用实例对象的setData方法更新源页面数据。例如:
在目标页面中修改值并返回:
```
wx.navigateBack({
delta: 1,
success: function(res) {
let pages = getCurrentPages()
let prevPage = pages[pages.length - 2]
prevPage.setData({
id: 456,
name: 'update'
})
}
})
```
2. 使用全局变量传递值
在app.js中定义一个全局变量,在需要传递值的页面中修改该变量的值,并在需要获取该值的页面中使用getApp函数获取app实例对象来获取该变量的值。例如:
在app.js中定义全局变量:
```
App({
globalData: {
id: '',
name: ''
}
})
```
在需要传递值的页面中修改该变量的值:
```
let app = getApp()
app.globalData.id = 123
app.globalData.name = 'test'
```
在需要获取该值的页面中获取该变量的值:
```
let app = getApp()
console.log(app.globalData.id) // 输出123
console.log(app.globalData.name) // 输出test
```
3. 使用本地存储传递值
在源页面中使用wx.setStorageSync函数将需要传递的值存储到本地存储中,在目标页面中使用wx.getStorageSync函数获取该值,并在需要修改该值并返回到源页面时使用wx.setStorageSync函数更新该值。例如:
在源页面中存储需要传递的值:
```
wx.setStorageSync('id', 123)
wx.setStorageSync('name', 'test')
```
在目标页面中获取该值:
```
let id = wx.getStorageSync('id')
let name = wx.getStorageSync('name')
console.log(id) // 输出123
console.log(name) // 输出test
```
在目标页面中修改该值并返回:
```
wx.navigateBack({
delta: 1,
success: function(res) {
wx.setStorageSync('id', 456)
wx.setStorageSync('name', 'update')
}
})
```