簡體   English   中英

JavaScript 警告:分配給函數參數的屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM