v-for 嵌套 v-show 的问题,不能动态改变?

2017-08-22 15:59:56 +08:00
 amourz
模板部分:
<template>

<ul v-for="item in list">
<li v-show="item.show">
{{item.name}}
</li>
</ul>
</template>
语法部分:
export default{
data() {
return {
list:[{name:'张三',show:true},{name:'李四',show:true},{name:'王五',show:true}]
}
}
}
初始化时没问题,然后我在一个 button 上绑定了 click 事件,单击使 list[1].show=false,按理李四这条记录应该被隐藏啊,为什么不起作用呢?
6047 次点击
所在节点    Vue.js
5 条回复
wenzichel
2017-08-22 16:03:19 +08:00
文档里也说了,修改数组中的值,不能直接对数组的下标进行操作,而是用`Vue.set`

```javascript
var item = list[index];
item.show = false;
Vue.set(list, index, item);
```

vue 新手,代码轻喷
yangff
2017-08-22 16:18:06 +08:00
首先你这个 v-for 要用在<li>上吧?
yangff
2017-08-22 16:21:11 +08:00
然后你倒是贴个完整代码啊。。
amourz
2017-08-22 16:23:12 +08:00
谢谢,确实要 set 后才行,感谢解惑
amourz
2017-08-22 16:28:42 +08:00
@wenzichel 谢谢,确实要 set 后才行,感谢解惑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/384875

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX