uni-app中v-for里面使用特殊符号后,无法添加点击事件,一添加点击事件就报编译错误

发布于 1周前 作者 phonegap100 来自 Uni-App

uni-app中v-for里面使用特殊符号后,无法添加点击事件,一添加点击事件就报编译错误

<view class="item-box" v-for="(item, j) in flowData[`column_${index + 1}`]" :key="j"> <view class="big-pic-wrap"> ![img](https://www.itying.com/uniimg.php?url=https://img-cdn-tc.dcloud.net.cn/uploads/questions/20241226/6dbca764be92dc219b550becf30d9c7d.png) <image src="@/static/icons/video-icon.png" class="video-icon" v-if="item.isVideo"></image> </view>
<view class="follow" v-if="item.hasFollow">  
    <image src="@/static/icons/default-head-pic.png" class="head-pic"></image>  
    <view class="follow-tip">你的关注</view>  
</view>  
<view class="doctor-title">{{ item.title }}</view>  
<view class="doctor-info">  
    <view class="info">  
        <image src="@/static/temp/img-2.png" class="doctor-info-pic"></image>  
        <view class="doctor-info-name">{{ item.name }}</view>  
    </view>  
    <view class="like-info">  
        <image src="@/static/icons/like-check.png" class="like-icon" v-if="item.hasLike"></image>  
        <image src="@/static/icons/like-uncheck.png" class="like-icon" v-else></image>  
        <view class="like-num" :class="[item.hasLike ? 'like-num-check' : 'like-num']">{{ item.likeNum }}</view>  
        <view style="width: 9rpx; height: 9rpx"></view>  
    </view>  
</view>  
<view class="kong-20"></view>  
</view>

4 回复

可能你两个for的key重复了 建议检查下key


没有重复

回复 5***@qq.com: 你在哪里添加的点击事件?

在uni-app中使用v-for时,如果在模板中使用了特殊符号(如:@等),并且希望在循环的元素上添加点击事件,确实可能会遇到一些编译错误。这通常是由于语法冲突或模板解析错误引起的。以下是一个如何在v-for中正确使用点击事件的示例,同时避免与特殊符号冲突的代码案例。

首先,确保你的v-for和事件绑定语法正确。在Vue/uni-app中,通常使用@click来绑定点击事件,而v-for用于列表渲染。下面是一个简单的示例,展示如何在v-for循环的列表项上添加点击事件:

<template>
  <view>
    <view v-for="(item, index) in items" :key="index" @click="handleClick(item, index)">
      {{ item.name }} - {{ index }}
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { name: 'Item 1' },
        { name: 'Item 2' },
        { name: 'Item 3' }
      ]
    };
  },
  methods: {
    handleClick(item, index) {
      console.log('Clicked item:', item, 'Index:', index);
      // 在这里处理点击事件,比如导航到另一个页面或显示详情
    }
  }
};
</script>

在这个例子中,v-for用于遍历items数组,并为每个项目创建一个view元素。每个view元素都有一个点击事件绑定到handleClick方法,该方法接收当前项item和索引index作为参数。

如果你遇到编译错误,请检查以下几点:

  1. 确保v-for@click语法正确:如上例所示,v-for应紧跟在元素标签的开始标签内,而@click应紧随其后。

  2. 避免在v-for表达式中使用特殊符号:确保v-for的表达式中没有不必要的特殊符号,比如直接在表达式中使用:@

  3. 检查数据绑定:确保items数组在data函数中已正确定义,并且handleClick方法在methods对象中已定义。

  4. 使用正确的Vue/uni-app版本:确保你使用的Vue或uni-app版本支持你的代码语法。

通过上述代码示例和检查点,你应该能够在v-for循环的元素上成功添加点击事件,而不会遇到编译错误。如果问题仍然存在,请检查具体的错误信息,以便进一步调试。

回到顶部