Почему троичный оператор в JS с несколькими операторами не работает? - PullRequest
0 голосов
/ 29 января 2020

Я знаю, что троичный оператор с несколькими операторами работает в React / JavaScript с:

condition ? (statement1,statement2,...) : (statement);.

Изучил , чтобы узнать, как это работает.

Ниже приведен мой код, который вызывает ошибку:

localProducts[productFoundAt].qty > 0 ? (localProducts[productFoundAt].qty-- , localCartedProducts[iterator].qty++) : alert("More quantity not available");

Ошибка:

. / Src / redurs / reducer. js Строка 26: 21: ожидал присваивания или вызова функции и вместо этого увидел выражение no-unused-expressionions

Найдите ключевые слова, чтобы узнать больше о каждой ошибке.

Аналогичный код с if/else работает нормально:

if (localProducts[productFoundAt].qty > 0) {
    localProducts[productFoundAt].qty--;
    localCartedProducts[iterator].qty++
} else {
    alert("More quantity not available");
}

Что я здесь не так делаю? Спасибо за помощь. И почему подобный код работает здесь?

let a = 10;
let b = 10;

a==b ? (a-- , b--):alert("Hello World");
console.log(a);
console.log(b);

1 Ответ

1 голос
/ 29 января 2020

Это правильный синтаксис. Это просто ошибка es-lint, которую можно игнорировать, добавив следующую строку:

/* eslint-disable no-unused-expressions */
localProducts[productFoundAt].qty > 0 ? (localProducts[productFoundAt].qty-- , localCartedProducts[iterator].qty++) : alert("More quantity not available");

Надеюсь, это работает для вас.

...