收藏
回答

下拉菜单,为什么if判断会失效?

下拉菜单

点击在线、离线、故障进行筛选

首先,获取选中的值,我这里用的是e._relatedInfo.anchorTargetText,获取结果中会有空格,用substring()方法提取。接着将当前展示出来的数据arr存档arrResult1

然后,用存档后的arrResult1分别筛选在线、离线、故障的数据为result1result2result3(这里先前不存档,发现arr会变,不知道是不是我哪没弄好)。

最后,对选中的值进行判断,分类赋值给展示列表arr

可是问题来了,if判断不生效,在if里面试着打印111都不出效果

现在是筛选2,是因为筛选1传过值了所以现在不行了吗?

onMenua2(e){
    this.setData({
      downResult2:e._relatedInfo.anchorTargetText.substring(9,12),// 选中的值
      arrResult1:this.data.arr //将当前展示列表存档
    })
    var result1 = this.data.arrResult1.filter(function(item) {
      return item.boo === 'online';   //筛选在线的数据
    });
    var result2 = this.data.arrResult1.filter(function(item) {
      return item.boo === 'offline';   //筛选离线的数据
    });
    var result3 = this.data.arrResult1.filter(function(item) {
      return item.boo === 'fault';   //筛选故障的数据
    });

    if (this.data.downResult2 === '在线') {
            // console.log(111); 
      this.setData({
        arr:result1 //如果选中的值是在线,将筛选的数据传给展示列表
      })
    }else if (this.data.downResult2 === '离线') {
      this.setData({
        arr:result2
      })
    }else if (this.data.downResult2 === '故障') {
      this.setData({
        arr:result3
      })
    }else if (this.data.downResult2 === '全部')  {
      this.setData({
        arr:this.data.arrResult1
      })
    }
  }
回答关注问题邀请回答
收藏

5 个回答

  • 默
    04-02

    选中的值获取的不对

    04-02
    有用 2
    回复 2
    • 海绵宝宝人间体
      海绵宝宝人间体
      04-03
      e里面只有这个有值,e.detail是空的
      04-03
      回复
    • 海绵宝宝人间体
      海绵宝宝人间体
      04-03
      谢谢,找到问题了,我取的两个字,应该是(9,11)看着打印出来的没空格以为不是这个原因
      04-03
      回复
  • 海绵宝宝人间体
    海绵宝宝人间体
    04-03

    谢谢大家了,问题已解决,这里是substring(9,11),竟然犯了这么个小毛病,亏我之前还长按输出打印的“在线”发现没空格,就以为不是这个问题

    04-03
    有用
    回复
  • 风清雾云开见日出
    风清雾云开见日出
    04-02
    打印一下this.data.downResult2这个值就知道了
    
    04-02
    有用
    回复 2
  • 一笑皆春
    一笑皆春
    04-02

    打印一下看看就知道了,大概率对象被操作了

    04-02
    有用
    回复
  • 0
    0
    04-02
    你打印一下this.data.downResult2看看是什么,还有判断用==
    


    04-02
    有用
    回复
登录 后发表内容