v-for 无法读取属性数据
v-for cannot read prop data
<template>
<span>
<i class="fa fa-star text-warning fa-2x" v-for="r in rating" :key="r"></i>
<h1>{{rating}}</h1>
</span>
</template>
<script>
export default {
name: "ratings",
props: ["rating"],
}
</script>
<style>
</style>
这是我的子组件之一,其中 4 作为道具传递,当我尝试在 H1 标签中显示评分道具时它显示 4,但我不知道为什么我的标签没有迭代 4 次
如果你想复制相同的情况然后复制粘贴上面的代码并在 index.html 中的 public 文件夹中只需在下面添加这两个 cdn
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.3/css/bootstrap.min.css" integrity="sha512-oc9+XSs1H243/FRN9Rw62Fn8EtxjEYWHXRvjS43YtueEewbS6ObfXcJNyohjHqVKFPoXXUxwc+q1K7Dee6vv9g==" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css" integrity="sha512-HK5fgLBL+xu6dm/Ii3z4xhlSUyZgTT9tuc/hSrtw6uzJOvgRr2a9jyxxT1ely+B+xFAmJKVSTbpM/CuL7qxO8w==" crossorigin="anonymous" />
并且在 App.vue、
<div>
<ratings rating="4"></ratings>
</div>
也不要忘记在 App.vue
的脚本标签中导入并注册这个组件
有人可以帮我吗
通过向传递的 prop 添加绑定符号 :
将值作为 integer
传递,因为它是 string
,并且只有一个长度,这就是它不迭代的原因。
<div>
<ratings :rating="4"></ratings>
</div>
如果值来自服务器或其他地方,将值转换为循环,如下所示:
<i class="fa fa-star text-warning fa-2x" v-for="r in parseInt(rating)" :key="r"></i>
v-for="r in parseInt(rating)"
我通过
解决了这个问题
<ratings :rating="parseInt(4)"></ratings>
<template>
<span>
<i class="fa fa-star text-warning fa-2x" v-for="r in rating" :key="r"></i>
<h1>{{rating}}</h1>
</span>
</template>
<script>
export default {
name: "ratings",
props: ["rating"],
}
</script>
<style>
</style>
这是我的子组件之一,其中 4 作为道具传递,当我尝试在 H1 标签中显示评分道具时它显示 4,但我不知道为什么我的标签没有迭代 4 次
如果你想复制相同的情况然后复制粘贴上面的代码并在 index.html 中的 public 文件夹中只需在下面添加这两个 cdn
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.3/css/bootstrap.min.css" integrity="sha512-oc9+XSs1H243/FRN9Rw62Fn8EtxjEYWHXRvjS43YtueEewbS6ObfXcJNyohjHqVKFPoXXUxwc+q1K7Dee6vv9g==" crossorigin="anonymous" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css" integrity="sha512-HK5fgLBL+xu6dm/Ii3z4xhlSUyZgTT9tuc/hSrtw6uzJOvgRr2a9jyxxT1ely+B+xFAmJKVSTbpM/CuL7qxO8w==" crossorigin="anonymous" />
并且在 App.vue、
<div>
<ratings rating="4"></ratings>
</div>
也不要忘记在 App.vue
的脚本标签中导入并注册这个组件有人可以帮我吗
通过向传递的 prop 添加绑定符号 :
将值作为 integer
传递,因为它是 string
,并且只有一个长度,这就是它不迭代的原因。
<div>
<ratings :rating="4"></ratings>
</div>
如果值来自服务器或其他地方,将值转换为循环,如下所示:
<i class="fa fa-star text-warning fa-2x" v-for="r in parseInt(rating)" :key="r"></i>
v-for="r in parseInt(rating)"
我通过
解决了这个问题<ratings :rating="parseInt(4)"></ratings>