вот функция, которая запускается Submit:
signup(user = {}) {
this.setState({loading: true});
axios.post( '/users.json', { user })
.then(response => {
this.props.propagateSignIn(response.data)
this.setState({
error: null,
newUserEmail: this.email.current.value,
signedUp: true,
loading: false
}, console.log(this.state.signedUp, this.state.loading));
})
.catch(error => {
if( error.response ){
this.setState({
error: error.response.data,
loading: false
});
}
})
}
Все работает, кроме этого:
this.setState({
error: null,
newUserEmail: this.email.current.value,
signedUp: true,
loading: false
}, console.log(this.state.signedUp, this.state.loading));
Если после него поставить console.log()
, оно не запуститсяили.
Почему состояние не обновляется?
К вашему сведению функция, вызываемая в родительском компоненте при запуске this.props.propagateSignIn(response.data)
:
propagateSignIn(user) {
this.getUser()
}
getUser(history = undefined) {
axios.get("/users/get_current_user", {})
.then(response => {
if (response.data.user) {
console.log('getUser:', response)
this.setState({isReady: true,
...response.data});
} else {
console.log("pas d'utilisateur connecté.")
this.setState({
user: null,
isReady: true
});
}
})
}