Функция перестала работать после выполнения условия.Мое условие выполняется слишком долго, пока длина массива не станет меньше 4 (<= 4).Таким образом, он корректно выполняется до тех пор, пока длина не достигнет 5 (0, 1, 2, 3, 4), но затем останавливается там, даже при 4 условие должно выполняться, но переходит к функции else, </p>
Вот мой код:
onPressSelectionHandler(day) {
this.state.selectedDateByOnPress <= 4 ? (
this.setState(prevState => ({
selectedDateByOnPress: [
...(prevState.selectedDateByOnPress.some(d => d.dateString === day.dateString)
? prevState.selectedDateByOnPress.filter(d => d.dateString !== day.dateString)
: [...prevState.selectedDateByOnPress, day])
],
daysing: day
}))
) : (
<Text>Not allowed</Text>
);
}
Итак, вышеприведенная функция устанавливает состояние при каждом срабатывании onPress, но я хочу ограничить состояние selectedDateByOnPress максимум до 5. Так что я сохранил условиес длиной.
Но, при повторном нажатии, условие переходит к тому, что мне нужно, когда длина достигает 4, тогда первая функция должна только быть выполнена.Но я не знаю, почему это происходит.Надеюсь, что все понимают проблему.