Не работает useHistory React

У меня есть метод на форме , который обращается к другому методу firebase:

const authHandler = (e) => {
    e.preventDefault()
    firebase
        .CheckUser(username.trim())
        .then(() => {
          console.log("success")
        })
        .catch(() => {
          console.log("Произошла ошибка")
        })
  }

А это сам метод CheckUser, который делает запрос и проверяет введенный username с уже готовым в базе:

import { useHistory } from "react-router-dom"
export const FirebaseState = ({ children }) => {
  const initialState = {
    notes: [],
    users:[],
    loading: false,
  }
  const [state, dispatch] = useReducer(firebaseReducer, initialState)
    const CheckUser = async username => {
        const history = useHistory()
          const res = await axios.get(`${url}/users.json`)
          const names = Object.keys(res.data).map(el => {
            return {
              ...res.data[el],
              name: el
            }
          })
          let user
           names.map(item => {
                 user = item.username
               }
           )
            if(username === user) {
              history.push('/list')
            }
      }
return (
    <FirebaseContext.Provider
      value={{
        showLoader,
        addNote,
        removeNote,
        CheckUser,
        loading: state.loading,
        notes: state.notes,
      }}
    >
      {children}
    </FirebaseContext.Provider>
  )
}

Нужно чтобы при совпадении введенного username происходил переход на страницу list, но он не работает (в консоль выводится 'Произошла ошибка' из catch). Как я могу реализовать такой переход?


Ответы (0 шт):