v-for和p标签联合使用循环对象的时候,无法正确的访问到对应的属性

在尝试 v-for 循环 reactive 创建的对象时,打开网页提示报错,报错信息如下:

v-for和p标签联合使用循环对象的时候,无法正确的访问到对应的属性
报错代码部分:

<p v-for="(diff, index, key) in info.diffs">
    <h4>{{ diff.sss }}</h4>
    <ul>
        <li v-for="(item) in diff.apply">{{ item }}</li>
    </ul>
</p>

当我把 p 标签换成 div 或者 template,甚至 span 标签的时候,代码可以正常运行

<div v-for="(diff, index, key) in info.diffs">
    <h4>{{ diff.sss }}</h4>
    <ul>
        <li v-for="(item) in diff.apply">{{ item }}</li>
    </ul>
</div>

尝试把 p 标签改成 h3 标签,也不可以正常运行。
查询了 vue 中关于 v-for 的介绍,并没有提到 v-for 不可以和哪个标签使用,并且在 vue 提供的在线演示 (play.vuejs.org/ “play.vuejs.org”),使用 p 标签和 v-for 也是可以正常使用的?

想咨询一下大家,为什么我的代码不能正常运行?#

下面贴上完整的源代码:

代码已被折叠,点此展开
讨论数量: 5

跟 Vue 没关系,标签嵌套规则问题,块级元素不能放在 p 标签里面

10个月前 评论
smartfw (楼主) 10个月前

内联元素中不要放块元素,如代码是这样的

<p>
    abc
    <h2>123</h2>
    <ul>
        <li>asd</li>
    </ul>
</p>

但是浏览器中解析后是这样的

file

10个月前 评论
smartfw (楼主) 10个月前

感谢各位回复,看了回复感觉确实可能和标签有关系,以后避免 p 标签中放块元素,这里补充一下,在 vue 的在线演示中也尝试了这段代码,发现用 p 标签没有问题,为什么不同的环境下又可以了呢

file

10个月前 评论