小程序(1)-页面跳转后传值boolean变成了string

76 阅读1分钟

页面跳转传值都是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