灿发
灿发
  • 发布:2020-06-11 17:34
  • 更新:2020-06-11 17:57
  • 阅读:539

【报Bug】两个自定义编译条件在 || 条件下失效

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: window 7

HBuilderX类型: 正式

HBuilderX版本号: 2.6.16

手机系统: iOS

手机系统版本号: iOS 13.0

手机厂商: 苹果

手机机型: iPhone 8

页面类型: vue

打包方式: 离线

项目创建方式: HBuilderX

示例代码:

例子一:

# ifdef MP-WEIXIN-TEST1 || MP-WEIXIN-TEST2  
<view></view  
# endif

如上:

  1. 如果运行 MP-WEIXIN-TEST1 条件,该 view 节点是能渲染出来的
  2. 如果运行 MP-WEIXIN-TEST2 条件,该 view 节点不能渲染出来。

例子二:

# ifdef MP-WEIXIN-TEST1  
<view></view  
# endif  

# ifdef MP-WEIXIN-TEST2  
<view></view  
# endif

如上:
分开编写编译条件,都能正常按照对应的条件进行渲染节点。

操作步骤:

文件: package.json

{  
    "uni-app": {  
        "scripts": {  
            "mp-weixin-test1": {   
                "title":"test1",  
                "env": {  
                        "UNI_PLATFORM": "mp-weixin"  
                 },  
                "define": {   
                        "MP-WEIXIN-TEST1": true  
                }  
            },  
            "mp-weixin-test2": {  
                "title":"test2",  
                "env": {  
                        "UNI_PLATFORM": "mp-weixin"  
                 },  
                "define": {   
                        "MP-WEIXIN-TEST2": true  
                }  
            }  
        }   
    }  
}

新建一个 vue 文件:

<template>  
    <!-- #ifdef MP-WEIXIN-TEST1 || MP-WEIXIN-TEST2 -->  
        <view><view>  
    <!-- #endif -->  
</template>

预期结果:
  1. 当进行 MP-WEIXIN-TEST1 编译条件或者 MP-WEIXIN-TEST2 编译条件时,view 能渲染出来。

实际结果:
  1. 进行 MP-WEIXIN-TEST1 编译条件,view 能渲染出来。
  2. 进行 MP-WEIXIN-TEST2 编译条件,view 不能渲染出来

bug描述:

两个自定义编译条件,在 || 条件下渲染节点。
正常 || 条件,只有其中一个条件成立就可以渲染该节点。
但是,如果第一个条件不成立,而第二个条件成立时,这个节点并不能成功渲染出来。

2020-06-11 17:34 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

define节点下,把所有用到的都定义出来,比如

 "define": {     
                         "MP-WEIXIN-TEST1": true ,  
                        "MP-WEIXIN-TEST2": false    
                }  
 "define": {     
                         "MP-WEIXIN-TEST1": false ,   
                        "MP-WEIXIN-TEST2": true    
                }  
  • 灿发 (作者)

    好的谢谢,我试试

    2020-06-11 18:04

  • 灿发 (作者)

    顺便问一下,define 的命名规则,是不是只能 xx-xxx-xxx 这样。我试了 xx-xxx-xxx-xxx 这样的命名,好像不行了

    2020-06-11 18:56

  • DCloud_UNI_FXY

    回复 灿发: 理论上没有限制

    2020-06-12 09:36

该问题目前已经被锁定, 无法添加新回复