React ESLint по-прежнему выдает неиспользуемые выражения с необязательной цепочкой

#reactjs #eslint

#reactjs #eslint

Вопрос:

У меня есть вызов функции, который использует необязательную цепочку

 const index = [1, 2, 3, 4]
media.name?.forEach((m) => {
   if (index.includes(m)) {
      console.log('Found index');
    }
  });
 

ESLint отображает предупреждение для этой строки как:

Expected an assignment or function call and instead saw an expression no-unused-expressions

Я проверил эту проблему здесь. Как они указали в конце, проблема была закрыта, и no-unused-expressions правило будет поддерживать необязательную цепочку.

Почему я все еще вижу это предупреждение в своем коде?

Мой конфигурационный файл eslint:

 {
  "env": {
    "browser": true
  },
  "extends": [],
  "parserOptions": {
    "ecmaFeatures": {
      "jsx": true
    },
    "ecmaVersion": 2020,
    "sourceType": "module"
  },
  "plugins": ["react-hooks", "react"],
  "rules": {
    "react-hooks/rules-of-hooks": "error",
    "react-hooks/exhaustive-deps": "warn",
    "linebreak-style": ["error", "windows"],
    "react/prop-types": 0
  }
}
 

Комментарии:

1. Отредактировал вопрос

2. Во-первых, что именно media.name это такое? Это массив? Во-вторых, откуда берется эта name переменная в if операторе? Пожалуйста, разместите весь ваш соответствующий код.

3. @zhulien Я не думаю, что это имеет значение, если кода в вопросе достаточно, чтобы продемонстрировать вопрос, о котором спрашивают

4. Я отредактировал код в вопросе, однако, как сказал @CertainPerformance, я не думаю, что код внутри имеет значение. Проблема заключается в использовании метода после того, как необязательная переменная цепочки вызовет это предупреждение.