簡體   English   中英

如何解決“無參數重新分配”的錯誤?

[英]How to fix “no-param-reassign” eslint error?

如何解決錯誤"no-param-reassign": [2, {"props": false}]"

這是我收到Eslint錯誤的示例:

 filtersList.forEach((filter) => {
      if (filter.title === 'Timeframe') {
        filter.options.forEach((obj) => {
          obj.selected = false;
        });
      }
    });

如何解決這個問題?

您現有的代碼會使參數數組中的對象發生變異,這會導致linter錯誤。 禁用該行的linter規則,或者創建新對象而不是進行更改,例如:

const changedFilters = filtersList.map((filter) => {
  if (filter.title !== 'Timeframe') {
    // you can clone the object here too, if you want
    return filter;
  }
  return {
    ...filter,
    options: filter.options.map((obj) => ({
      ...obj,
      selected: false
    }))
  };
});

然后,稍后在代碼中使用changedFilters變量。 這樣可以確保沒有任何變異。

基本上,您是使用forEach在適當位置修改filterList ,請改用map


filtersList.map(filter => {
  if (filter.title === "Timeframe") {
    return {
      ...filter,
      options: filter.options.map(obj => ({ ...obj, selected: false }))
    };
  }
  return filter;
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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