页面跳转传值都是string
在微信小程序的 wx.navigateTo 中,所有通过 URL 传递的参数都会被强制转换为字符串类型,无论原始类型是什么。这是小程序框架的底层机制决定的。
所以如果你这样传值:
const submit = true;
wx.navigateTo({
url: `/pages/detail/index?submit=${submit}`
});
你会发现最终下个页面收到的的确是true,但是类型却是string类型,所以你用wx:if={{submit}}永远都是true,因为字符串不为空肯定成立,尼玛。
onLoad(options) {
console.log("onLoad");
const submit = options.submit;
console.log("onLoad submit = " + submit +" , typeof submit = " + (typeof submit) + ", submit === false is " +(submit === false));
}
这个坑用了半天的时间填好了。
那string怎么转成真的boolean呢?
const submit = options.submit === 'true'; // 将 "true"/"false" 转为 true/false