Не работает 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). Как я могу реализовать такой переход?