我的需求是在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的类型:stringconsole.log('str的值是:' + str) //str的值是:'PinDuoDuo'console.log(str=="PinDuoDuo") //falseconsole.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',})
}
为什么第一种方式赋值没用,因为我页面上还做了一次判断比较,所有必须赋值字符串才可以
更多推荐
字符串,路径,类型,false
发布评论