我的需求是在A页面传值type跳转到B页面,B页面接收,然后处理逻辑
A页面:
<navigator class="search-box" open-type="navigate" url="../search/search?type='PinDuoDuo'" hover-class="none"> </navigator>
B页面接收值:
onLoad: function(options) {
let str = options.type;
console.log('str的类型:' + typeof (str)) //str的类型:string
console.log('str的值是:' + str) //str的值是:'PinDuoDuo'
console.log(str=="PinDuoDuo") //false
console.log(str=='PinDuoDuo') //false
},
我就很纳闷,为什么会是false,明明类型都是string。后来一朋友提醒,说比较的时候类型就变了。
console.log(str =="'PinDuoDuo'") //返回true
弄明白了这个,后面的就好说,直接赋值还是不行 ,一定要赋值字符串。
//刚开始赋值如下,达不到我要的效果
if (str == "'PinDuoDuo'") {
this.setData({
currentTab: str,
})
}
//最后改成下面的,就可以了
if (str == "'PinDuoDuo'") {
this.setData({
currentTab: 'PinDuoDuo',
})
}
为什么第一种方式赋值没用,因为我页面上还做了一次判断比较,所有必须赋值字符串才可以