function (el) {
el.expando = {};
}
我使用AirBnB的代码样式,这使得ESLint抛出一个no-参数-resign
错误:
分配到函数参数“el”时出错无参数重新分配
如何操作作为参数传递的DOM对象,同时符合AirBnB的代码风格?
有人建议使用/*eslint反应/prop-type: 0*/
引用另一个问题,但如果我没有弄错的话,这适用于反应,但不适用于本机DOM操作。
我也不认为改变代码风格是一个答案。我相信使用标准样式的好处之一是在项目之间拥有一致的代码,随意更改规则感觉就像滥用了AirBnB这样的主要代码样式。
为了记录在案,我在GitHub上问了AirBnB,他们认为在第766期的这些情况下该怎么做。
您可以在您的. eslintrc
文件中重写此规则,并为像这样的参数属性禁用它
{
"rules": {
"no-param-reassign": [2, {
"props": false
}]
},
"extends": "eslint-config-airbnb"
}
此方式规则仍处于活动状态,但不会对属性发出警告。更多信息:http://eslint.org/docs/rules/no-param-reassign
正如本文所解释的,此规则旨在避免对参数
对象进行变异。如果分配给参数,然后尝试通过参数
对象访问某些参数,可能会导致意外结果。
您可以通过使用另一个变量来获取对DOM元素的引用,然后修改它来保持规则不变并保持AirBnB样式:
function (el) {
var theElement = el;
theElement.expando = {};
}
在JS中,对象(包括DOM节点)是通过引用传递的,所以这里el
和theElement
是对同一个DOM节点的引用,但是修改theElement
不会改变参数
对象,因为参数[0]
仍然只是对该DOM元素的引用。
该规则的文档中暗示了这种方法:
此规则的正确代码示例:
/*eslint no-param-reassign: "error"*/
function foo(bar) {
var baz = bar;
}
就我个人而言,我只会使用“no param reassign”:[“error”,{“props”:false}]
处理前面提到的几个其他答案。修改参数的属性不会改变该参数所指的内容,也不会遇到此规则试图避免的问题。
正如@Mathletics所建议的,您可以通过将其添加到您的来完全禁用该规则。eslintrc.json
文件:
"rules": {
"no-param-reassign": 0
}
或者,您可以禁用专门用于参数属性的规则
"rules": {
"no-param-reassign": [2, { "props": false }]
}
或者,您可以禁用该函数的规则
/* eslint-disable no-param-reassign */
function (el) {
el.expando = {};
}
/* eslint-enable no-param-reassign */
还是只为那一行
function (el) {
el.expando = {}; // eslint-disable-line no-param-reassign
}
问题内容: 有可能设置的属性元件到从例如一个不同的元件特性或属性。请参阅使.files可设置#2866,将文件上传到HTML表单并提交它之间会发生什么?。 对象具有一个我们可以用它来设置一个属性对象,它是迭代的,但是 仍然被设置为和传递一个具有集,其中是使用上述方法产生一组具有对象集到。 如何将at 和set设置为文件集的数量,其中将文件设置为object的位置? 问题答案: 编辑: 正如 OP
我已经创建了一个类get set,但是调试显示v有一个对象类型,如何将对象分配到属性中?有什么想法吗?
我使用springcloud config server在生产环境中按计划在运行时刷新我的应用程序属性。我的日程表每两周一次,没有任何问题。 我的应用程序在Kubernetes cloud上运行在多个吊舱上。吊舱随时可能崩溃或重新启动。当pod崩溃/重新启动时,它在应用程序启动时从配置服务器和存储库中获取最新的属性文件,而不是等待下一个计划的刷新周期。 任何解决以上问题的建议将不胜感激。
问题内容: 有人可以给我展示一种代码有效的方法,以 根据从超链接发送给它的参数在spring mvc中更改对象属性吗? 我正在修改spring petclinic示例应用程序,以便“所有者” 详细信息页面可以显示特定 “所有者”拥有的每种“宠物”的单独列表。当前,“宠物”列表是每个“所有者”的属性, 可以在jstl中作为owner.pets访问。我想要的是让我的 jstl代码能够从jstl调用ow
问题内容: 因此,我在回答这个问题的同时一直在使用Python,但发现这是无效的: 由于 。但是,对于从对象继承的任何类,它都是有效的: 打印将按预期显示“ hello”。为什么会这样呢?在Python语言规范中,有哪些规定不能将属性分配给香草对象? 问题答案: 为了支持任意属性分配,对象需要一个:与对象关联的字典,可以在其中存储任意属性。否则,就无处放置新属性。 的实例object并没有随身携带
问题内容: 我遇到的烧瓶SQLAlchemy的一个问题,我可以设置对象的属性 place_collections ,但是当我想设置为对象属性 的地方 ,发生了错误: 如何设置联接搜索对象的属性,有人可以帮助我吗? 它们都是 “ flask_sqlalchemy.BaseQuery” 类。 模型 问题答案: 将返回您的对象集合。这类似于普通的香草SQLAlchemy。 但是,从SQLAlchemy