Задать вопрос
@understyle

Как поменять состояние компонента внутри условия используя useEffect?

В хуке useEffect необходимо произвести итерацию массива arrTimes. arrTimes - массив дат.
Для примера: В dataTime приходит результат "2022-08-30 10:00", в selectedDate приходит "2022-08-30" . В случае, если даты совпадают, необходимо dateTime добавить в timeList.

В результате выполнения кода в timeList записывается только последнее значение, возвращающее истину, а не все результаты подходящие по условию. Насколько понял, это происходит потому, что хук useState является асинхронным.
Как в текущей задаче можно вывернуться, чтобы поместить в timeList весь список дат?
const [timeList,  setTimeList] = useState([]);
useEffect(() => {
        if (status) {
            arrTimes?.map(item => {
                const dateTime = item.attributes.datetime;           
                 if (dateTime.includes(selectedDate)) {
                    setTimeList([...timeList, dateTime]);
                 }
                });
        } 
        }, [status])
  • Вопрос задан
  • 25 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Merion Academy
    Frontend-разработка на React
    4 месяца
    Далее
  • ProductStar
    React: отточите навыки интерфейсной разработки
    6 недель
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽