у меня появляется ошибка каждый раз, когда я нажимаю кнопку при входе в систему
TypeError: Cannot read property 'then' of undefined
, но после перезагрузки ошибка исчезла. могу я узнать, что случилось? вот мой код при входе в систему
onSignIn(e){
e.preventDefault()
this.Auth.login(this.state.signInUsername, this.state.signInPassword)
.then(res => {
this.props.history.replace('/')
})
.catch(err => {
alert(err)
})
}
и это мой код авторизации:
login(username, password){
axios.post('http://localhost:3000/user/login', {
username,
password
})
.then(this._checkStatus)
.then(res => {
if (res.data.success === true){
const payload = {
name: username,
}
this.setToken(payload)
return Promise.resolve(res)
}else{
console.info(res.data.message)
}
})
.catch(err => {
return Promise.reject(err)
})
}





вернуть аксиомы из функции входа в систему.
login(username, password){
return axios.post('http://localhost:3000/user/login', {
username,
password
})
.then(this._checkStatus)
.then(res => {
if (res.data.success === true){
const payload = {
name: username,
}
this.setToken(payload)
return res;
}else{
console.info(res.data.message)
}
})
.catch(err => {
throw err;
})
}
после того, как я использовал ваш код, это действие не работает this.props.history.replace ('/')
все еще не могу, мне нужно перезагрузить страницу, затем можно перенаправить
Я использовал window.location.href = '/' и работал, но не знаю, лучший ли это способ.
Я считаю, что у вас есть -two- ".then" для вашего axios.post. В примере, приведенном на сайте axios, используется
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.info(response);
})
.catch(function (error) {
console.info(error);
});
только один. затем на вызов Axios.
.catch(err => { return Promise.reject(err) })лишний, брось.