Как сделать условие для повторного выполнения, как только условие выполнено - PullRequest
0 голосов
/ 06 февраля 2019

Функция перестала работать после выполнения условия.Мое условие выполняется слишком долго, пока длина массива не станет меньше 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, тогда первая функция должна только быть выполнена.Но я не знаю, почему это происходит.Надеюсь, что все понимают проблему.

...