Ожидал присваивания или вызова функции и вместо этого увидел выражение .eslintno-unused-expression - PullRequest
2 голосов
/ 18 апреля 2020

Привет, я использую троичный оператор внутри функции. Но Эслинт выдает ошибку на этом. Пожалуйста, помогите мне исправить это.

  const Test = (showBtn, bubbleId, latitude, longitude, zoom, drillLevel) => {
    setShowBtn(showBtn);
    drillLevel === 'area' ? getCitiesData(bubbleId) : getStatesData();
    setViewport({
      ...viewport,
      latitude,
      longitude,
      zoom,
    });
  };

Ответы [ 5 ]

0 голосов
/ 18 апреля 2020

Тройка - это выражение (то есть, оно разрешается до значения), чего ожидает ваш линтер. Либо игнорируйте правило для строки, либо присвойте его одноразовой переменной.

Лично я избегаю игнорировать правила линтинга, если нет альтернативы, поэтому в этом случае я бы сделал это:

 const throwAway = drillLevel === 'area' ? getCitiesData(bubbleId) : getStatesData();
0 голосов
/ 18 апреля 2020

Если ваш текущий код работает, возможно, было бы более целесообразно полностью исключить условный оператор и использовать вместо него if / else:

if (drillLevel === 'area') getCitiesData(bubbleId)
else getStatesData();

Таким образом, на самом деле у вас нет любые неиспользуемые выражения, что является правильным способом исправить такого рода предупреждение о задержке.

0 голосов
/ 18 апреля 2020

Может быть, вы забыли присвоить результат get * некоторой переменной, примерно viewport?

const data = drillLevel === 'area' ?
  getCitiesData(bubbleId) :
  getStatesData();
0 голосов
/ 18 апреля 2020

https://eslint.org/docs/rules/no-unused-expressions

добавить опцию для вашего eslint в allowTernary = true

Вы можете добавить его в качестве комментария над строкой или в конфигурации eslint, где у вас есть ваши правила определены

/*eslint no-unused-expressions: ["error", { "allowTernary": true }]*/

enter image description here

0 голосов
/ 18 апреля 2020

Вы можете просто добавить этот комментарий allowTernary над выражением троичного оператора, чтобы отключить ошибку eslint для этой строки:

/*eslint no-unused-expressions: ["error", { "allowTernary": true }]*/
drillLevel === 'area' ? getCitiesData(bubbleId) : getStatesData();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...