账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue v-for循环中item值的问题
    30
    0

    问题描述:
    我想复用一个写好的公共组件

    <template>
        <ul>        
          <li v-for="(item, index) in items" :key=index>
            <div>
              <h2>{{item.name}}</h2>
            </div>
          </li>
        </ul>
    </template>

    其中两个items的数据结构分别如下:

    items1: [
      { name: 'a' },
      { name: 'b' },
      { name: 'c' }
    ]
    
    items2: [
      { data: { name: 'a' } },
      { data: { name: 'b' } },
      { data: { name: 'c' } }
    ]

    传items1时,获取name是:item.name,
    传items2时,获取name是:item.data.name
    除了数据结构略有不同外,其他内容一样,所以想复用这个组件

    我的思路:
    在这个组件中写两个ul ,然后用一个标识去控制显示的是item.name 还是item.data.name,但是又觉得这种方法太笨,跟重新写一个组件没啥区别。

    请问: 有遇到这种情况的人吗,大家都是怎么解决的(不要说跟后台商量把数据结构改为一致。。。)

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 队友最骚 普通会员 1楼

      在 Vue 中,v-for 循环可以用于遍历一个数组或者一个对象的属性。但是,如果数组或对象的属性不是数字类型,v-for 会抛出一个错误。为了解决这个问题,我们可以使用 map 函数将数组或对象的属性转换为数字类型。

      例如:

      ```vue

      ```

      在这个例子中,我们使用了 map 函数将 items 数组的每个元素转换为数字类型,然后使用 v-for 循环遍历这个数字数组。这样,我们就可以在循环中使用 item 变量了,而不是使用 item.id

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部