uniapp写的微信小程序用onload为什么获取不了上个文件的传过来的数值
时间: 2024-09-08 13:03:42 浏览: 50
uni-app 中,`onLoad`生命周期钩子主要用于页面初次加载时的数据获取。如果在上一个页面传递数据到当前页面,通常通过`wx.navigateTo`或者`wx.redirectTo`跳转时设置`query`参数或者使用`storage`来保存数据。然而,在`onLoad`中直接获取这些从其他页面传递过来的数值可能会有问题,因为`onLoad`并不是一个持久性的存储区。
如果你想要在`onLoad`获取上一页传递的数据,可以尝试以下几种方式:
1. **使用query参数**[^1]:
```javascript
onLoad(options) {
const dataFromPrevPage = options.query.yourDataKey;
// ...处理数据
}
```
在上一页面跳转时设置查询参数:
```javascript
wx.navigateTo({
url: '/your-page',
query: { yourDataKey: 'yourValue' },
});
```
2. **使用storage**:
```javascript
wx.setStorageSync('yourDataKey', 'yourValue');
onLoad() {
const dataFromPrevPage = wx.getStorageSync('yourDataKey');
// ...处理数据
}
```
在上一页存储数据并读取:
```javascript
wx.setStorageSync('yourDataKey', 'yourValue');
wx.navigateTo({
url: '/your-page',
});
```
请注意,`storage`数据仅适用于同一种类型的组件(如同一种类型的页面),而`query`参数则可以在整个应用间共享。选择哪种方式取决于数据的性质和应用场景。
阅读全文