Для пролистывания задач у меня есть функция изменяющия номер текущей задачи:
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
});
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости