[英]JavaScript warning: Assignment to property of function parameter
我從源代碼編譯了vue-flash-message組件並收到以下警告:
✘ http://eslint.org/docs/rules/no-param-reassign Assignment to property of function parameter 'Vue'
src\components\vue-flash-message\index.js:173:5
Vue.prototype[options.storage] = FlashBus;
在以下代碼中:
export default {
install(Vue, config = {}) {
const defaults = {
method: 'flash',
storage: '$flashStorage',
createShortcuts: true,
name: 'flash-message',
};
const options = Object.assign(defaults, config);
...
const FlashBus = new Vue({
data() {
return {
storage: {
},
};
},
methods: {
flash(msg, type, opts) {
return new FlashMessage(FlashBus, msg, type, opts);
},
push(id, message) {
Vue.set(this.storage, id, message);
},
destroy(id) {
Vue.delete(this.storage, id);
},
destroyAll() {
Vue.set(this, 'storage', {});
},
},
});
...
Vue.prototype[options.storage] = FlashBus;
...
},
};
是否可以更正代碼並使其在沒有警告的情況下編譯?
這不是問題。
您為no-param-reassign
設置了 ES Lint 規則。 這與Vue
創建插件的方式相沖突,在這種方式下,您被指示直接寫入prototype
。 你可以在這里看到我的聲明
您唯一的選擇是fork
該項目,如果它讓您煩惱那么多,請忽略您的 linter 行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.