Для пролистывания задач у меня есть функция изменяющия номер текущей задачи:
prevIssue () {
var index = this.state.currentIssueIndex;
console.log(index === 0 ? index : index--);
var newIndex = index === 0 ? index : index--;
this.setState({
currentIssueIndex: newIndex
});
}
В приведено виде она работает.
Но если я уберу console.log()
то значение индекса меняется не будет.
(не будет уменьшатся на единицу)
Почему это происходит, как правильно реализовать функцию?
Потому что эта запись
console.log(index === 0 ? index : index--);
эквивалентна такой
let res;
if (index === 0)
res = index;
else
res = index;
index--;
}
console.log(res);
Заменить код таким
console.log(index);
if (index !== 0)
index--;
тогда строку console.log(index);
можно будет убирать при ненадобности.
Потому что при index
, отличном от нуля, вычисляется второй операнд выражения
...index === 0 ? index : index--
Используйте if
prevIssue () {
var index = this.state.currentIssueIndex;
if (index !== 0)
index--;
var newIndex = index === 0 ? index : index--;
this.setState({
currentIssueIndex: newIndex
});
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имеется 2 функции в JS, нужно чтобы вторая выполнялась спустя 1 секунды после выполнения первойКак реализовать?