微信小程序 变量值不起作用

首先是页面传值:wx.navigateTo({url:'../doex/doex?radioshoworhide=true&multipleshoworhide=fals... 首先是页面传值:wx.navigateTo({ url: '../doex/doex?radioshoworhide=true&multipleshoworhide=false&torfshoworhide=false', })变量设置及接收数据:data: { radioshoworhide: false, multipleshoworhide: false, torfshoworhide: false, singleChoice:null, multiChoice:null, torfChoice:null, }, onLoad: function (options) { var that=this; that.setData({ multipleshoworhide: options.multipleshoworhide, torfshoworhide: options.torfshoworhide, radioshoworhide: options.radioshoworhide }); }wxml页面<text>{{radioshoworhide?'aha':'lll'}}</text><button class="hide{{radioshoworhide?'show':''}}">{{radioshoworhide}}</button><button class="hide{{multipleshoworhide?'show':''}}">{{multipleshoworhide}}</button><button class="hide{{torfshoworhide?'show':''}}">{{torfshoworhide}}</button>wxss页面.show{ display: block;}.hide{ display: none;}显示结果如下图:第二和第三个按钮没有被隐藏,但从按钮的值来看已经接受到 false的赋值,为什么class里面没有接受这个值,求指教,谢谢 展开
 我来答
网海1书生
科技发烧友

2018-09-29 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26230

向TA提问 私信TA
展开全部
页面传值获得的"true"和"false"是字符串,不是布尔值,所以 <text>{{radioshoworhide?'aha':'lll'}}</text> 这里的radioshoworhide是按字符串来处理的,而如果直接拿字符串进行逻辑判断,则凡是有内容的字符串就等价于true,空字符串则等价于false,所以radioshoworhide的值不管是"true"还是"false",判断的结果都是true!
所以要改成这样 <text>{{radioshoworhide=='true'?'aha':'lll'}}</text>
当然,也可以在setData的时候就进行转换,这样wxml中就不需要修改。
补充一句:用url来传送逻辑值时,最好不要直接用true和false,因为接收方肯定是按字符串来处理参数的,而字符串的"true"和"false"其实都相当于true,所以最好用1来表示true(其他字符也可以的,只要不是空字符),而用空字符来表示false,比如
../doex/doex?radioshoworhide=1&multipleshoworhide=&torfshoworhide=
这样的话接收方如果接收到的参数值非空就表示true,空白就表示false
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式