请求处理中...
小程序传递参数的方式有三种:
(1)通过在App.js中设置全局变量
(2)通过拼接URL直接传递
(3)通过数据缓存存储再获取
1.app.js
通常把不会更改的数据放在app.js的Data中,在各个页面中都可以通过APP实例获取Data数据。
var app = getApp(); var data = app.data;
2.wx.navigateTo({})中URL携带参数
wx.navigateTo({
url: 'test?id=1'
}); |
3. 数据缓存
①wx.setStorageSync(KEY,DATA)存储数据
try {
wx.setStorageSync('key', 'value')
} catch (e) {
} |
②wx.getStorageSync(KEY)获取数据
try {
var value = wx.getStorageSync('key')
if (value) {
// Do something with return value
}
} catch (e) {
// Do something when catch error
} |
然而,根据所传递参数的数据类型的不同,如对象、数组集合需要进行相应的处理。本质上都是String类型的传递。
1、传递基本数据类型
Page({
data: {
testStr: 'xiaochengxu'
},
next: function(e){
wx.navigateTo({
url: '/test/test?str='+this.data.testStr
})
}
})
Page({
onLoad:function(options){
console.log("接收到的参数是str="+options.str);
}
}) |
打印内容:接收到的参数是str=xiaochengxu
2,传递对象
Page({
data: {
testData:{name:'username', password:'password'}
},
next: function(e){
wx.navigateTo({
url: '/test/test?testData='+JSON.stringify(this.data.testData)
})
}
})
Page({
data:{
testData:null
},
onLoad:function(options){
console.log("接收到的参数是testData="+options.testData);
this.data.testData = JSON.parse(options.testData);
}}) |
打印内容:
接收到的参数是testData={"name":"username","password":"password"}
3,传递数组集合
Page({
data: {
list:['item-A','item-B']
},
next: function(e){
wx.navigateTo({
url: '/test/test?list='+JSON.stringify(this.data.list),
})
}
})
Page({
data:{
list:[]
},
onLoad:function(options){
console.log("接收到的参数是list="+options.list);
this.data.list = JSON.parse(options.list);
}}) |
打印内容:接收到的参数是list=["item-A","item-B"]
var dealParam = function(data) {
for(var i in data) {
if (typeof data[i] == ‘string’){
console.log(“key=”+i+“; value=”+data[i]);
} else if (typeof data[i] == ‘object’) {
dealParam(data[i]);
}
}
}
} |
交易额: 3412.16万元
企业 |山东省 |临沂市 |临沂市
交易额: 1082.75万元
企业 |山东省 |青岛市 |城阳区
交易额: 427.32万元
企业 |山东省 |济南市 |历下区
交易额: 170.44万元
企业 |浙江省 |温州市 |瓯海区
成为一品威客服务商,百万订单等您来有奖注册中
价格是多少?怎样找到合适的人才?
¥20000 已有3人投标
¥3000 已有3人投标
¥5000 已有1人投标
¥10000 已有25人投标
¥50000 已有14人投标
¥5000 已有21人投标
¥8000 已有1人投标
¥1000 已有0人投标