vue.js - 尝试清除字典时 Vue.js DOM 未更新
问题描述
我有一本由 v-for 循环呈现的字典,我想将字典设置为空白字典。我已经尝试使用 this.dict = {} 并在所有键上使用 Vue.delete,这些会更新控制台中的字典,但不会重新渲染 DOM。如何清除此字典以便在 DOM 中重新呈现它。
html
<ol>
<li v-for="item in Object.keys(todos)">
<label>{{item}}:{{todos[item]}}</label>
</li>
</ol>
<button v-on:click = "reset()">reset</button>
js
new Vue({
el: "#app",
data: {
todos: {"a" : "b"}
},
methods: {
reset: function(){
this.todos = {};
console.log(this.todos);
Vue.delete(todos, "a");
Vue.set(todos, "a", "");
}.bind(this)
}
})
解决方案
像这样重写组件:
new Vue({
el: "#app",
data: {
todos: {"a" : "b"}
},
methods: {
reset(){
this.todos = {};
console.log(this.todos);
Vue.delete(todos, "a");
Vue.set(todos, "a", "");
}
}
})
推荐阅读
- spring-webflux - ReactiveElasticsearchRepository 在启动时不自动索引
- reactjs - 反应打字稿,“typeof TodoFilterItem”类型上不存在属性“propTypes”。TS2339
- android - setVisibility(View.INVISIBLE)在 MapFragment 中不起作用
- sql - 在 AWS Athena 中计算日期范围内的实例
- excel - VBA 正在将我的 Sharepoint UNC 路径转换为 URL
- pyspark - Pyspark:如何将行分组为 N 组?
- rust - 为什么 Rust HashMap 不允许使用“没有为结构 `HashMap` 找到名为 `insert` 的方法”插入值
- arrays - 派生数据类型中的 Fortran 字符数组
- python - ImageGrab 没有抓取精确的 bbox 图像
- java - 如何在 java 中获取 Linux 发行版