Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

编译后的代码出现逻辑错误导致运行结果未达预期 #3220

Closed
ctcx opened this issue May 28, 2019 · 6 comments
Closed

编译后的代码出现逻辑错误导致运行结果未达预期 #3220

ctcx opened this issue May 28, 2019 · 6 comments
Assignees

Comments

@ctcx
Copy link

ctcx commented May 28, 2019

问题描述
发现这个问题是在使用 taro-ui 组件 AtIndexes 时显示错误

复现步骤

使用 AtIndexes 组件,每组数据达到20个以上时会出现(非报错)

以下是我查看AtIndexes组件编译后的代码片段

var loopArray19 = list.map(function (dataList, _anonIdx3) {
        dataList = {
          $original: (0, _index.internal_get_original)(dataList)
        };
        var $anonymousCallee__0 = dataList.$original.items ? dataList.$original.items.map(function (item, _anonIdx) {
          item = {
            $original: (0, _index.internal_get_original)(item)
          };
          var $compid__152 = (0, _index.genCompid)(__prefix + "zmjkaPGoJN" + _anonIdx3 + _anonIdx);
          _index.propsManager.set({
            "title": item.$original.name,
            "onClick": _this4.handleClick.bind(_this4, item.$original)
          }, $compid__152);
          return {
            $compid__152: $compid__152,
            $original: item.$original
          };
        }) : [];
        return {
          $anonymousCallee__0: $anonymousCallee__0,
          $original: dataList.$original
        };
      });

// ```js
主要是 这一行:
var $compid__152 = (0, _index.genCompid)(__prefix + "zmjkaPGoJN" + _anonIdx3 + _anonIdx);
// ```
当变量:
_anonIdx3  1  _anonIdx  10 
_anonIdx3  11  _anonIdx  0 
会出现变量 $compid__152 值相同的情况

我不知道这行代码是哪里生成的,所以不知道在哪里修改;但是如果在 变量 _anonIdx3 + _anonIdx 之间再加个 '_' 如:_anonIdx3 +'_'+ _anonIdx,就可以避免这个问题了。

系统信息
Taro CLI 1.3.0-beta.5 environment info:
System:
OS: macOS 10.14.5
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 11.1.0 - /usr/local/bin/node
Yarn: 1.12.3 - /usr/local/bin/yarn
npm: 6.9.0 - /usr/local/bin/npm
npmPackages:
@tarojs/async-await: ^1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/components: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/mobx: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/mobx-h5: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/mobx-rn: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/plugin-babel: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/plugin-csso: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/plugin-sass: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/plugin-uglifyjs: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/rn-runner: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/router: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/taro: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/taro-alipay: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/taro-h5: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/taro-swan: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/taro-tt: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/taro-weapp: 1.3.0-beta.3 => 1.3.0-beta.3
@tarojs/webpack-runner: 1.3.0-beta.3 => 1.3.0-beta.3
eslint-config-taro: 1.3.0-beta.3 => 1.3.0-beta.3
eslint-plugin-taro: 1.3.0-beta.3 => 1.3.0-beta.3
nervjs: ^1.4.0-beta.3 => 1.4.0-beta.4
npmGlobalPackages:
typescript: 3.1.5

@taro-bot
Copy link

taro-bot bot commented May 28, 2019

欢迎提交 Issue~

如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏

如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。

Good luck and happy coding~

@yuche
Copy link
Contributor

yuche commented May 28, 2019

找一下你的源代码贴出来,有一个循环返回 JSX 组件,用 list 来循环,循环回调的第一个变量是dataList

@ctcx
Copy link
Author

ctcx commented May 29, 2019

我用的是taro-ui 的组件,组件代码是:
<AtIndexes list={brandList} />
brandList数据是(使用以下数据能正常显示,但是字母B组内缺少了包括本田在内的几个品牌,同时多出了 纳智捷 等其他非字母B组的数据):
{"A":[{"_id":"audi","name":"奥迪"},{"_id":"alfaromeo","name":"阿尔法・罗密欧"},{"_id":"astonmartin","name":"阿斯顿・马丁"},{"_id":"car_autohome_brand_117","name":"AC Schnitzer"},{"_id":"car_autohome_brand_276","name":"ALPINA"}],"B":[{"_id":"benz","name":"奔驰"},{"_id":"buick","name":"别克"},{"_id":"bentley","name":"宾利"},{"_id":"bmw","name":"宝马"},{"_id":"porsche","name":"保时捷"},{"_id":"byd","name":"比亚迪"},{"_id":"biaozhi","name":"标致"},{"_id":"baojun","name":"宝骏"},{"_id":"bujiadi","name":"布加迪"},{"_id":"changhe","name":"北汽昌河"},{"_id":"benteng","name":"奔腾"},{"_id":"beiqizhizao","name":"北汽制造"},{"_id":"barbus","name":"巴博斯"},{"_id":"beiqiweiwang","name":"北汽威旺"},{"_id":"huansu","name":"北汽幻速"},{"_id":"beiqishenbao","name":"北汽绅宝"},{"_id":"baowo","name":"宝沃"},{"_id":"bs","name":"比速汽车"},{"_id":"dod","name":"北汽道达"},{"_id":"car_autohome_brand_333","name":"北京清行"},{"_id":"car_autohome_brand_14","name":"本田"},{"_id":"car_autohome_brand_27","name":"北京"},{"_id":"car_autohome_brand_208","name":"北汽新能源"}],"C":[{"_id":"changanshangyong","name":"长安轻型车"},{"_id":"car_autohome_brand_196","name":"成功汽车"},{"_id":"car_autohome_brand_299","name":"长安跨越"},{"_id":"car_autohome_brand_76","name":"长安"},{"_id":"car_autohome_brand_77","name":"长城"},{"_id":"car_autohome_brand_163","name":"长安欧尚"}],"D":[{"_id":"dongnan","name":"东南"},{"_id":"daoqi","name":"道奇"},{"_id":"dazhong","name":"大众"},{"_id":"logo_270","name":"DS"},{"_id":"dchng","name":"大乘汽车"},{"_id":"dink","name":"电咖"},{"_id":"car_autohome_brand_92","name":"大发"},{"_id":"car_autohome_brand_326","name":"东风・瑞泰特"},{"_id":"car_autohome_brand_32","name":"东风"},{"_id":"car_autohome_brand_113","name":"东风风神"},{"_id":"car_autohome_brand_142","name":"东风小康"},{"_id":"car_autohome_brand_165","name":"东风风行"},{"_id":"car_autohome_brand_187","name":"东风风度"},{"_id":"car_autohome_brand_259","name":"东风风光"}],"F":[{"_id":"fudi","name":"福迪"},{"_id":"ferrari","name":"法拉利"},{"_id":"toyota","name":"丰田"},{"_id":"ford","name":"福特"},{"_id":"fiat","name":"菲亚特"},{"_id":"qiteng","name":"福汽启腾"},{"_id":"car_autohome_brand_96","name":"福田"}],"G":[{"_id":"galue","name":"光冈"},{"_id":"gmc","name":"GMC"},{"_id":"jiao","name":"广汽吉奥"},{"_id":"guanzhi","name":"观致"},{"_id":"car_autohome_brand_304","name":"国金汽车"},{"_id":"car_autohome_brand_329","name":"广汽集团"},{"_id":"car_autohome_brand_82","name":"广汽传祺"},{"_id":"car_autohome_brand_313","name":"广汽新能源"},{"_id":"car_autohome_brand_371","name":"Genesis"}],"H":[{"_id":"hafei","name":"哈飞"},{"_id":"haima","name":"海马"},{"_id":"hanma","name":"悍马"},{"_id":"huapu","name":"华普"},{"_id":"hongqi","name":"红旗"},{"_id":"huanghai","name":"黄海"},{"_id":"logo_266","name":"恒天"},{"_id":"haige","name":"海格"},{"_id":"huasong","name":"华颂"},{"_id":"hanteng","name":"汉腾汽车"},{"_id":"car_autohome_brand_184","name":"华骐"},{"_id":"car_autohome_brand_245","name":"华凯"},{"_id":"car_autohome_brand_336","name":"红星汽车"},{"_id":"car_autohome_brand_87","name":"华泰"},{"_id":"car_autohome_brand_181","name":"哈弗"},{"_id":"car_autohome_brand_260","name":"华泰新能源"},{"_id":"car_autohome_brand_309","name":"合众汽车"}],"J":[{"_id":"huachen","name":"金杯"},{"_id":"jiebao","name":"捷豹"},{"_id":"jianghuai","name":"江淮"},{"_id":"jeep","name":"Jeep"},{"_id":"logo_258","name":"九龙"},{"_id":"jnmqch","name":"君马汽车"},{"_id":"jit","name":"捷途"},{"_id":"car_autohome_brand_145","name":"金龙"},{"_id":"car_autohome_brand_175","name":"金旅"},{"_id":"car_autohome_brand_25","name":"吉利汽车"},{"_id":"car_autohome_brand_119","name":"江铃"},{"_id":"car_autohome_brand_210","name":"江铃集团轻汽"},{"_id":"car_autohome_brand_270","name":"江铃集团新能源"},{"_id":"car_autohome_brand_356","name":"钧天"},{"_id":"car_autohome_brand_373","name":"几何汽车"}],"K":[{"_id":"cadillac","name":"凯迪拉克"},{"_id":"chrysler","name":"克莱斯勒"},{"_id":"kairui","name":"开瑞"},{"_id":"kenisaige","name":"科尼赛克"},{"_id":"kaiyi","name":"凯翼"},{"_id":"car_autohome_brand_109","name":"KTM"}],"L":[{"_id":"liebao","name":"猎豹汽车"},{"_id":"lamborghini","name":"兰博基尼"},{"_id":"lifan","name":"力帆汽车"},{"_id":"lotus","name":"莲花汽车"},{"_id":"landrover","name":"路虎"},{"_id":"lincoln","name":"林肯"},{"_id":"lexus","name":"雷克萨斯"},{"_id":"suzuki","name":"铃木"},{"_id":"renault","name":"雷诺"},{"_id":"rolls-royce","name":"劳斯莱斯"},{"_id":"linian","name":"理念"},{"_id":"lufeng","name":"陆风"},{"_id":"lutesi","name":"路特斯"},{"_id":"lngk","name":"领克"},{"_id":"car_autohome_brand_118","name":"Lorinser"},{"_id":"car_autohome_brand_204","name":"陆地方舟"},{"_id":"car_autohome_brand_241","name":"LOCAL MOTORS"},{"_id":"car_autohome_brand_335","name":"LITE"},{"_id":"car_autohome_brand_343","name":"领途汽车"},{"_id":"car_autohome_brand_346","name":"罗夫哈特"},{"_id":"car_autohome_brand_318","name":"零跑汽车"},{"_id":"car_autohome_brand_345","name":"理想"}],"M":[{"_id":"mg","name":"名爵"},{"_id":"mini","name":"MINI"},{"_id":"maserati","name":"玛莎拉蒂"},{"_id":"mazda","name":"马自达"},{"_id":"logo_259","name":"迈凯伦"},{"_id":"car_autohome_brand_55","name":"迈巴赫"},{"_id":"car_autohome_brand_168","name":"摩根"}],"N":[{"_id":"dongfengyulongnazhijie","name":"纳智捷"},{"_id":"car_autohome_brand_213","name":"开沃汽车"},{"_id":"car_autohome_brand_295","name":"NEVS国能汽车"}],"O":[{"_id":"opel","name":"欧宝"},{"_id":"acura","name":"讴歌"},{"_id":"car_autohome_brand_332","name":"欧尚汽车"},{"_id":"car_autohome_brand_146","name":"欧朗"},{"_id":"car_autohome_brand_331","name":"欧拉"}],"P":[{"_id":"car_autohome_brand_61","name":"帕加尼"},{"_id":"car_autohome_brand_308","name":"Polestar极星"}],"Q":[{"_id":"chery","name":"奇瑞"},{"_id":"kia","name":"起亚"},{"_id":"logo_269","name":"卡尔森"},{"_id":"logo_245","name":"启辰"},{"_id":"qiawei","name":"卡威"},{"_id":"qint","name":"前途"},{"_id":"car_autohome_brand_222","name":"乔治・巴顿"},{"_id":"car_autohome_brand_312","name":"庆铃汽车"},{"_id":"car_autohome_brand_219","name":"全球鹰"}],"R":[{"_id":"richan","name":"日产"},{"_id":"ruilin","name":"瑞麒"},{"_id":"rongwei","name":"荣威"},{"_id":"logo_271","name":"如虎"},{"_id":"car_autohome_brand_296","name":"瑞驰新能源"},{"_id":"car_autohome_brand_337","name":"容大智造"}],"S":[{"_id":"datong","name":"上汽大通MAXUS"},{"_id":"saab","name":"萨博"},{"_id":"subaru","name":"斯巴鲁"},{"_id":"shuanghuan","name":"双环"},{"_id":"skoda","name":"斯柯达"},{"_id":"mitsubishi","name":"三菱"},{"_id":"shuanglong","name":"双龙"},{"_id":"shijue","name":"世爵"},{"_id":"siwei","name":"SWM斯威汽车"},{"_id":"car_autohome_brand_205","name":"赛麟"},{"_id":"car_autohome_brand_162","name":"思铭"}],"T":[{"_id":"tesla","name":"特斯拉"},{"_id":"tengshi","name":"腾势"},{"_id":"car_autohome_brand_202","name":"泰卡特"}],"W":[{"_id":"volvo","name":"沃尔沃"},{"_id":"wuling","name":"五菱汽车"},{"_id":"weilin","name":"威麟"},{"_id":"wushiling","name":"五十铃"},{"_id":"yingzhi","name":"潍柴英致"},{"_id":"WEY","name":"WEY"},{"_id":"wiliqch","name":"蔚来"},{"_id":"wim","name":"威马汽车"},{"_id":"car_autohome_brand_99","name":"威兹曼"}],"X":[{"_id":"hyundai","name":"现代"},{"_id":"chevrolet","name":"雪佛兰"},{"_id":"citroen","name":"雪铁龙"},{"_id":"xiyate","name":"西雅特"},{"_id":"xinkai","name":"新凯"},{"_id":"xnt","name":"新特汽车"},{"_id":"car_autohome_brand_306","name":"SRM鑫源"},{"_id":"car_autohome_brand_275","name":"小鹏汽车"},{"_id":"car_autohome_brand_350","name":"星途"}],"Y":[{"_id":"chuanqiyema","name":"野马汽车"},{"_id":"nj-iveco","name":"依维柯"},{"_id":"infiniti","name":"英菲尼迪"},{"_id":"yongyuanqiche","name":"永源"},{"_id":"ynd","name":"云度"},{"_id":"ynqu","name":"云雀汽车"},{"_id":"car_autohome_brand_232","name":"御捷"},{"_id":"car_autohome_brand_298","name":"宇通客车"},{"_id":"car_autohome_brand_307","name":"裕路"},{"_id":"car_autohome_brand_110","name":"一汽"},{"_id":"car_autohome_brand_263","name":"驭胜"}],"Z":[{"_id":"huachen-zhonghua","name":"中华"},{"_id":"zhongtai","name":"众泰"},{"_id":"zhongxing","name":"中兴"},{"_id":"zhnu","name":"之诺"},{"_id":"zhdu","name":"知豆"}],"s":[{"_id":"smart","name":"smart"}]}

@taro-bot
Copy link

taro-bot bot commented May 29, 2019

CC @yuche

@yuche
Copy link
Contributor

yuche commented May 29, 2019

感谢,你提供的信息非常有价值

@yuche yuche closed this as completed in 230a347 May 29, 2019
@nevernet
Copy link

@ctcx 代码格式化一下就好了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants