Vue Keys 不会从 Object 中删除

     2023-02-23     234

关键词:

【中文标题】Vue Keys 不会从 Object 中删除【英文标题】:Vue Keys do not delete from Object 【发布时间】:2020-07-21 16:22:32 【问题描述】:

我正在尝试从父组件中的对象中删除一个键。子组件向父方法发送一个事件(带有项目值),触发父数据对象中的删除。

父组件:

data() 
  return 
    savedNews: Object
  
,
methods: 
  containsKey(obj, key) 
    var result = Object.keys(obj).includes(key)
    return result
  ,
  handleSaveNews(item) 
    if (!this.containsKey(this.savedNews, item.url)) 
      this.savedNews = 
        [item.url]: item,
        ...this.savedNews
      
     else 
      console.log(this.containsKey(this.savedNews, item.url))
      var res = delete(this.savedNews, item.url)
      console.log(res)
      console.log(this.containsKey(this.savedNews, item.url))
    
  

最后一个 else 语句中的所有 console.logs 都返回 true。就是说删除成功了,但是key还在。如何删除此密钥?

【问题讨论】:

那个delete函数是从哪里来的? 您的数据不应将 savedNews 初始化为 Object 构造函数。相反,请尝试 savedNews: savedNews: Object.create(null) 我通过其他帖子找到了delete。据说这是一种 ES6 方法。不过,对我不起作用。 [***.com/questions/44954459/… 【参考方案1】:

来自the docs:

Vue 无法检测到属性添加或删除

使用this.$delete:

this.$delete(this.savedNews, item.url)

this.$set(也应该用于属性更改):

this.$set(this.savedNews, item.url, undefined);

额外信息:$ 是 Vue 用于每个组件实例上可用的内置方法的命名约定。也有一些插件选择遵循这种模式。例如,如果您 import Vue 并使用 Vue.delete,您也可以在其他模块中使用内置函数。您可以添加自己的方法,例如 Vue.prototype.$mymethod = ...

【讨论】:

谢谢!我对 Vue 还很陌生。 this.$<function_name>后面有什么用? $ 是什么意思? 不客气! $ 是 Vue 为其内置方法使用的命名约定,可在每个组件实例上使用。您可以添加自己的 Vue.prototype.$mymethod。也有一些插件选择遵循这种模式。例如,如果您 import Vue 并使用 Vue.delete,您也可以在其他模块中使用内置函数。我会将此信息复制到答案中。

Object.keys() 从集合中返回 MongoDB 对象上的意外键 [重复]

】Object.keys()从集合中返回MongoDB对象上的意外键[重复]【英文标题】:Object.keys()returnsunexpectedkeysonMongoDBobjectfromcollection[duplicate]【发布时间】:2017-12-0315:54:21【问题描述】:在这里处理一个奇怪的问题。这是从mongodb中提取并传递... 查看详情

为啥它不会从集合中删除?

】为啥它不会从集合中删除?【英文标题】:Whywon\'titremovefromtheset?为什么它不会从集合中删除?【发布时间】:2010-11-0808:47:22【问题描述】:这个错误我花了一段时间才找到...考虑这种方法:publicvoidfoo(Set<Object>set)Objectobj=se... 查看详情

销毁父组件时,UIkit 模态元素不会从 DOM 中删除(Vue.js)

】销毁父组件时,UIkit模态元素不会从DOM中删除(Vue.js)【英文标题】:UIkitmodalelementisnotremovedfromDOMwhenparentcomponentisdestroyed(Vue.js)【发布时间】:2020-07-0708:44:35【问题描述】:我在我的Vue应用程序上使用UIKit模式。UIkit.modal(element).... 查看详情

如何在 TypeScript 中获取 JSON 文件上的 Object.keys 时设置类型?

】如何在TypeScript中获取JSON文件上的Object.keys时设置类型?【英文标题】:HowdoyousettypesongettingObject.keysonJSONfileinTypeScript?【发布时间】:2021-04-0316:18:21【问题描述】:我正在尝试从JSON文件中访问一个对象,但出现了错误:Elementimpl... 查看详情

如何从 React 组件的状态对象中删除属性

...性【英文标题】:HowcanIremoveanattributefromaReactcomponent\'sstateobject【发布时间】:2015-12-2908:13:06【问题描述】:如果我有一个在其状态上设置了属性的React组件:onClick()this.setState(foo:\'bar\');是否可以从Object.keys(this.state)中删除"foo&q 查看详情

Object.keys 在打字稿中使用数字

】Object.keys在打字稿中使用数字【英文标题】:Object.keysusingnumbersintypescript【发布时间】:2019-11-1005:54:57【问题描述】:typeFoo=[key:number]:stringconstfoo:Foo=100:\'foo\',200:\'bar\'constsizes:number[]=Object.keys(foo)给我:Type\'string[]\'isnotas 查看详情

object.keys

语法Object.keys(obj)参数obj要返回其枚举自身属性的对象。返回值一个表示给定对象的所有可枚举属性的字符串数组。描述Object.keys 返回一个所有元素为字符串的数组,其元素来自于从给定的对象上面可直接枚举的属性。这些属... 查看详情

object.keys及表单清空(代码片段)

Object.keys 返回一个所有元素为字符串的数组,其元素来自于从给定的object上面可直接枚举的属性。这些属性的顺序与手动遍历该对象属性时的一致。//simplearrayvararr=[‘a‘,‘b‘,‘c‘];console.log(Object.keys(arr));//console:[‘0‘,‘1... 查看详情

vue如何获取数组的中的第一个对象

参考技术Avue使用keys(object)获取数组中的第一个对象。根据查询相关公开信息显示,使用.keys(object)可以取出数组中的第一个对象,会打乱顺序。 查看详情

vue06基础-列表渲染

...)splice()sort()reverse()变异数组会改变原始数组。而替换数组不会改变原始数组,总是返回一个新数组。例如filter()、concat()和slice()。它们不会改变原始数组,而总是返回一个新数组。Vue不能检测数组和对象的变化,解决方法https://cn... 查看详情

在原生不支持的旧环境中添加兼容的object.keys

1if(!Object.keys){2Object.keys=(function(){3varhasOwnProperty=Object.prototype.hasOwnProperty,//原型上的方法,只取自身有的属性;4hasDontEnumBug=!({toString:null}).propertyIsEnumerable(‘toString‘),//ie6一下,!之后的内容为false 查看详情

无法在 angularjs 中调用 Object.keys

】无法在angularjs中调用Object.keys【英文标题】:UnabletocallObject.keysinangularjs【发布时间】:2014-10-0714:18:51【问题描述】:我正在使用UI.Bootstrap手风琴,并且我已经像这样定义了我的标题:<accordion-groupng=repeat="(cname,stations)inbyClient"... 查看详情

object.keys()方法(代码片段)

Object.keys(obj)obj:要返回器枚举自身属性的对象。返回值:返回一个所有元素为字符串的数组,其元素来自于从给定的obj里可直接枚举的属性。    这些属性的顺序与手动遍历该对象属性时的一致。示例:letobj=0:‘a‘,1:‘b‘... 查看详情

object.keys函数(javascript)

Object.keys函数(JavaScript)返回对象的可枚举属性和方法的名称。在实际开发中,我们有时需要知道对象的所有属性,原生js给我们提供了一个很好的方法:Object.keys(),该方法返回一个数组传入对象,返回属性名varobj={‘a‘:‘123‘,... 查看详情

使用某些 Object 属性从 ArrayList 中删除对象

】使用某些Object属性从ArrayList中删除对象【英文标题】:RemoveobjectfromArrayListwithsomeObjectproperty【发布时间】:2016-07-0122:31:22【问题描述】:我正在维护一个ArrayList对象。我的对象结构是ID、名称和其他一些细节。我需要删除一个... 查看详情

3.object.keys()取得对象中所有可枚举的属性

Object.keys()取得对象中所有可枚举的属性functionPerson(){}Person.prototype.name="summer";Person.prototype.age=20;Person.prototype.job="enginner";Person.prototype.sayName=function(){console.log(this.name);}varkeys=O 查看详情

在javascript中使用object.keys()和map()方法访问对象数组

...建一个树来输出数据,如数组中的languages对象,以及使用Object.keys()和map()的嵌套对象。基本上我想循环遍历每个对象并访问其中的languages对象。这是我到目前为止所尝试的:varproductMap2={};productMap2=Object.keys(jsonData[0]).map(function(key)... 查看详情

从Python中的字典中删除键[重复]

】从Python中的字典中删除键[重复]【英文标题】:RemovingkeysfromdictionaryinPython[duplicate]【发布时间】:2016-06-1103:42:01【问题描述】:我想从Python字典中删除一些键。密钥以列表形式提供;到目前为止我的代码:my_keys=[2,4]my_dict=1:"aaaa... 查看详情