chentc
chentc
  • 发布:2023-04-06 14:33
  • 更新:2023-04-06 20:07
  • 阅读:251

【报Bug】if判断语句中的小括号编译到微信小程序中没了

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10教育版

HBuilderX类型: 正式

HBuilderX版本号: 3.7.9

第三方开发者工具版本号: 1.06.2301171

基础库版本号: 2.30.4

项目创建方式: HBuilderX

操作步骤:

代码正常运行到微信小程序

预期结果:

小括号正常编译

实际结果:

if判断中的小括号没了

bug描述:

在编辑期间if判断语句中有两个判断条件是有小括号包住的,但是运行到微信小程序后括号没了,导致我的结果应该为false的变成了undefined

2023-04-06 14:33 负责人:无 分享
已邀请:
星拾夜暝

星拾夜暝

只需要将if判断语句中的小括号加上一个空格就行了

chentc

chentc (作者)

还是一样呢

  • 星拾夜暝

    试试这种写法:

    if (条件1) && (条件2) {

    // 若条件1和条件2同时成立,则执行这里的代码

    } else {

    // 否则执行这里的代码

    }

    2023-04-06 15:30

chentc

chentc (作者)

那我的业务逻辑不就错了嘛

chentc

chentc (作者)

我在外面加了一层括号 !!((...) || (...)) 可以用了。
但是这个问题希望后面还是可以解决一下!

  • 星拾夜暝

    这个需要找官方,我只是看到你问题帮你回答下

    2023-04-06 16:04

  • chentc (作者)

    回复 星拾夜暝: 好吧,我以为是官方,哈哈哈哈

    2023-04-06 16:06

  • 星拾夜暝

    回复 chentc: 这个上面平常很少人回复的

    2023-04-06 16:08

  • chentc (作者)

    回复 星拾夜暝: 唉,坑好多。

    2023-04-06 16:10

YUANRJ

YUANRJ

&&运算符优先级是大于||运算符的,这两段代码结果是一样的,检查下你的代码逻辑。

  • YUANRJ

    回复 chentc: 你可以在编译后的代码手动加上括号,看看是否符合你的预期

    2023-04-07 19:36

  • chentc (作者)

    回复 YUANRJ: 这样操作,未必打包之后还得改代码吗,不科学呀。

    2023-04-10 10:12

  • chentc (作者)

    返回的东西是不一样的,没有括号会返回不满足条件的结果,及可能返回undefined。带上括号返回的必定是布尔值,我要的就是布尔值。

    2023-04-10 10:15

  • YUANRJ

    回复 chentc: 我这里测试都是符合预期的,如果确认是框架问题,麻烦提供一个可复现的测试工程,谢谢

    2023-04-10 10:58

  • chentc (作者)

    回复 YUANRJ: 不好意思,是我表达错了问题。

    我的问题是:图中有个showError的变量通过这个isError的结果判断是否显示错误信息,它的返回值是undefined时,在h5中是会关闭错误信息,但是在小程序中却不会关闭。

    2023-04-10 11:17

  • YUANRJ

    回复 chentc: 你可以排查下判断里每个变量的值,哪块出了问题

    2023-04-10 11:24

  • chentc (作者)

    回复 YUANRJ: 返回undefined是对的,我的意思是h5会把undefined当成false,而小程序不会。所以导致showError=undefined时错误信息没有关闭

    2023-04-10 11:31

要回复问题请先登录注册