Реагировать на useState без изменения значения

Я использую useState вот так и событие onclick с именем жанрHandler:

    const [clickedGenre, setClickedGenre] = useState<string>(null)

    const genreHandler= (event: React.MouseEvent<HTMLLIElement>) => {
      console.info(clickedGenre)
      const li: HTMLLIElement = event.currentTarget;
      setClickedGenre(li.id);    
      axios.get(API_URL+"products?category.genre = "+clickedGenre)
        .then((response) => {
          setProductList( response.data );
        })
        .catch((error)=>{
          console.info(error)
        }),[clickedGenre]
      }

вот мой ли тег

    <li className = "list-group-item text-uppercase" 
      key= {category.id} id = {category.genre} 
      onClick = {genreHandler}>{category.genre}</li>

Когда я нажимаю на li, состояние использования (clickedGenre) по-прежнему не изменяется на {category.genre}. Это изменение по двойному щелчку. Пожалуйста, помогите мне, что не так с моим кодом

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема в этой части вашего кода

  setClickedGenre(li.id);    
  axios.get(API_URL+"products?category.genre = "+clickedGenre)

React является асинхронным, поэтому clickedGenre еще не будет иметь обновленного значения при использовании в axios, поэтому во второй раз все в порядке (после асинхронного обновления).

Таким образом, правильный код должен был бы использовать непосредственно значение li.id

  setClickedGenre(li.id);    
  axios.get(API_URL+"products?category.genre = " + li.id)

Другие вопросы по теме

Похожие вопросы

Хуки ReactJS — ошибка «Объекты недействительны в качестве дочернего элемента React» в коде исследования и интерпретация JS переменной в массив
Реакция: всплывающее окно ссылки CKEditor5 не отображается ни в модальном режиме начальной загрузки 5, ни в модальном модальном библиотеке rsuite
Как я могу предотвратить повторный рендеринг функциональных компонентов реакции, если никакие реквизиты не изменились
Разница между отправкой функции как функции стрелки
Как отправить данные из дочернего компонента в родительский компонент в React
React Native, как перейти на другую страницу с помощью onPress во Flatlist
Как я могу получить случайные данные по идентификатору продукта или слагу в одном компоненте в useQuery? он показывает одни и те же данные для всех компонентов
ReactJS: значение на входе не меняется при обновлении состояния
Как использовать пользовательскую разбивку на страницы Material ui?
Кнопка со ссылкой