收藏
回答

请问获取列表数的点击id,index,又从数据库中拿到了当前数据,如何把这一条,直接渲染到页面呢?

请问获取列表数的点击id,index,又从数据库中拿到了当前数据,如何把这一条,直接渲染到页面呢?比如说,客户浏览了,要把单条数据实时更新到页面?

回答关注问题邀请回答
收藏

4 个回答

  • 15
    15
    2022-05-24

    我好像懂你的意思了,其实setData的key是可以写变量的,只需要加个中括号

    2022-05-24
    有用
    回复
  • 啥时给
    啥时给
    2022-05-24

    我懂你

    
    // wxml
    <view 
      wx:for="{{ list }}" 
      data-index="{{ index }}" 
      data-id="{{ id }}"
      catchtap="handleTap">
      <!-- 列表的每一项 -->  
      {{ item.hasRead ? '已读' : '未读' }}
    </view>
    
    // js
    handleTap(e) {
      const { index, id } = e.currentTarget.dataset;
      // 你的业务逻辑, 比如服务端标记这条已读
      someRequest(id);
      // 更新本地渲染数据, 当然这里要根据你的业务来做, 比如请求结束才做标记或者让他异步掉
      this.setData({
        [`list[${index}].hasRead`]: true, // 假设你用 hasRead 标记已读未读
      });
    }
    
    2022-05-24
    有用
    回复
  • Frank
    Frank
    2022-05-24

    这问题,读了3遍,没看懂你具体表达的啥意思呢😭

    2022-05-24
    有用
    回复 2
    • 笑看人生
      笑看人生
      发表于移动端
      2022-05-24
      重新赋值的话,datalist如何表达,在setDate面不能写datalist[index]:
      2022-05-24
      回复
    • Frank
      Frank
      2022-05-24回复笑看人生
      虽然问题没读懂,你看下下面这种写法,对你有帮助不
      2022-05-24
      回复
  • 小黎
    小黎
    2022-05-24

    给当前这条数据重新赋值就行了啊

    2022-05-24
    有用
    回复 1
    • 笑看人生
      笑看人生
      发表于移动端
      2022-05-24
      重新赋值的话,datalist如何表达,在setDate面不能写datalist[index]:
      2022-05-24
      回复
登录 后发表内容