weixin_43356655 2022-01-25 08:48 采纳率: 83.3%
浏览 123
已结题

微信小程序执行了bindtap后,不会在界面执行wx:if里的代码

执行了bindtap的onClickPowerInfo后,将showItem变成了!showItem,
是想页面的wx:if要重新判断,然后刷新显示不同的内容才是,
但是并不会自动刷新,只能重新编译才会显示!showItem的内容,请问为什么会这样呢?

onClickPowerInfo(e) {
    const index = e.currentTarget.dataset.index
    const getLimit1 = this.data.getLimit1
    getLimit1[index].showItem = !getLimit1[index].showItem
    this.setData({
      getLimit1
    })

    const docc=getLimit1[index]._id
    db.collection("project").where({
      _id:docc
    }).update({
      data:{
        showItem:getLimit1[index].showItem
      },
    })
  },


<view class="container">
  <view wx:for="{{list}}">
    <view class="power" wx:for-items="{{item.data}}">
     <view class="power_info" data-index="{{index}}" bindtap="onClickPowerInfo">
        <!-- 显示列表主题 -->
        <view class="power_info_text">
          <view class="power_info_text_title">{{item.project}}</view>
          <view class="power_info_text_tip">{{item.hight}}</view>
        </view>
        <!-- 显示列表箭头图标  -->
        <image wx:if="{{!item.showItem}}" class="power_info_more" src="../../images/arrow.svg"></image>
        <image wx:if="{{item.showItem}}" class="power_info_less" src="../../images/arrow.svg"></image>
      </view>
      <view wx:if="{{item.showItem}}">
        <view class="power_item_title">{{item.project}}</view>
        <view class="power_item">
          <view class="power_item_title" bindtap="viewProject">
            {{item._id}}
            {{item.width}}
            {{item.hight}}
          </view>
        </view>
      </view>
    </view>
  </view>
</view>


js的代码有点臃肿,是因为我想试下更改数据库的showItem,但结果还是不行。麻烦大 佬帮我看看,感谢感谢

  • 写回答

4条回答 默认 最新

  • CSDN专家-showbo 2022-01-25 10:24
    关注

    代码有问题,wxml遍历的是list数组项中的data数组,题主js代码中更改的是getLimit1数据,不是wxml中的data数据项当然不会更新了。之所以重新编译会更新,因为数据库更新成功了,重新获取了数据

    img


    要想wxml界面更新,应该更改list数据项,而且注意list数组下标另外起名。

    img

    wxml

    <view class="container">
      <view wx:for="{{list}}" wx:for-index="listindex">
        <view class="power" wx:for-items="{{item.data}}">
         <view class="power_info" data-listindex="{{listindex}}" data-index="{{index}}" bindtap="onClickPowerInfo">
            <!-- 显示列表主题 -->
            <view class="power_info_text">
              <view class="power_info_text_title">{{item.project}}</view>
              <view class="power_info_text_tip">{{item.hight}}</view>
            </view>
            <!-- 显示列表箭头图标  -->
            {{item.showItem}}
          </view>
          <view wx:if="{{item.showItem}}">
            <view class="power_item_title">{{item.project}}</view>
            <view class="power_item">
              <view class="power_item_title" bindtap="viewProject">
                {{item._id}}
                {{item.width}}
                {{item.hight}}
              </view>
            </view>
          </view>
        </view>
      </view>
    </view>
     
    
    
    

    js

    wx.cloud.init({env: 'dbw3dev-5gf8fz972fd029e2'});
    const db = wx.cloud.database();
    Page({
      data:{
        list:[{
          data:[
            {project:'项目1',height:100,showItem:true},
            {project:'项目2',height:200,showItem:false}
          ]}
        ]
      },
      onClickPowerInfo(e) {
        ////注意下标获取
        const index = e.currentTarget.dataset.index,listindex= e.currentTarget.dataset.listindex
        const list = this.data.list;
        list[listindex].data[index].showItem=!list[listindex].data[index].showItem;
      
        this.setData({
          list
        })
    
        const docc=getLimit1[index]._id
        db.collection("project").where({
          _id:docc
        }).update({
          data:{
            showItem:list[listindex].data[index].showItem///////////////
          },
        })
      },
     
     
    })
     
     
    
    

    img


    有其他问题可以继续交流~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月2日
  • 已采纳回答 1月25日
  • 创建了问题 1月25日

悬赏问题

  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 这个复选框什么作用?
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下