【问题标题】:Fixing no-param-reassign Eslint issue in function修复函数中的 no-param-reassign Eslint 问题
【发布时间】:2021-01-09 07:47:34
【问题描述】:

使用下面的代码,我在// eslint-disable-next-line no-param-reassign 禁用该行的许多地方收到 ESlint 错误Assignment to property of function parameter 'recurrence'。我不想使用禁用。如何在不使用 disable 作为合法方式的情况下解决这个问题?谁能帮我这个?谢谢

   onUpdateRecurrence = (recurrence) => {
    const todayDay = moment().format('D');
    const currentMonth = moment().format('M');
    if (recurrence.frequency === 'MONTHLY') {
      if (recurrence.days) {
        // eslint-disable-next-line no-param-reassign
        delete recurrence.days;
      }
      if (recurrence.day_of_month) {
        // eslint-disable-next-line no-param-reassign
        recurrence.day_of_month = recurrence.day_of_month;
      } else {
        // eslint-disable-next-line no-param-reassign
        recurrence.day_of_month = `${todayDay}${this.getDaySuffix(todayDay)}`;
      }
      if (recurrence.month) {
        // eslint-disable-next-line no-param-reassign
        recurrence.month = recurrence.month;
      } else {
        // eslint-disable-next-line no-param-reassign
        recurrence.month = currentMonth;
      }
    }
    if (recurrence.frequency === 'WEEKLY') {
      if (recurrence.day_of_month) {
        // eslint-disable-next-line no-param-reassign
        delete recurrence.day_of_month;
      }
      if (recurrence.month) {
        // eslint-disable-next-line no-param-reassign
        delete recurrence.month;
      }
    }
    if (recurrence.frequency === 'DAILY') {
      if (recurrence.day_of_month) {
        // eslint-disable-next-line no-param-reassign
        delete recurrence.day_of_month;
      }
      if (recurrence.month) {
        // eslint-disable-next-line no-param-reassign
        delete recurrence.month;
      }
      if (recurrence.days) {
        // eslint-disable-next-line no-param-reassign
        delete recurrence.days;
      }
    }
    return recurrence;
  };

【问题讨论】:

    标签: javascript node.js reactjs ecmascript-6


    【解决方案1】:

    您可以将循环分配给函数内部的const 变量,并在函数内部使用它。

     onUpdateRecurrence = (recurrence) => {
        const recurrenceValue = {...recurrence};
    
       //Your Code
     }
    

    【讨论】:

    • 所以现在我必须在每个使用recurrence 的地方都用recurrenceValue.frequency 替换recurrence.frequency
    • 是的。或者只是简单地将参数名称更改为其他名称并将const变量名称设置为recurrence。所以现在你不必到处更换了。
    • 谢谢....你能帮我吗? stackoverflow.com/questions/64023755/…
    猜你喜欢
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 2019-03-18
    相关资源
    最近更新 更多