0
Does anyone know why the this.setState(token: token_here) function is not working or returning error ?
export default class Init extends Component<Props> {
state = {
// Evita que o código seja executado duas vezes.
// Gambiarra de um bug desconhecido.
control_request: 0,
// Parâmetros passados pelo auth.js.
params: this.props.navigation.state.params,
// Token.
token: '',
}
// Função executada após a montagem do componente.
componentDidMount() {
/* Verificando se os parametros foram passados.
* Verificando se a função já foi executada antes.
*/
if(this.state.params && this.state.control_request == 0){
// Setando o valor 1, informando a execução da função.
this.setState({control_request: 1});
// Atribuição por desestruturação.
let { params:{ code },
params:{app:{client_id}},
params:{app:{client_secret}},
params:{app:{grant_type}},
params:{app:{redirect_uri}}
} = this.state.params;
// Requisitando o token a API.
axios.post('https://openredu.ufpe.br/oauth/token?', {
client_id: client_id,
client_secret: client_secret,
grant_type: grant_type,
redirect_uri: redirect_uri,
code: code,
}).then(function(response){
// Usar o storage para armazenar o token.
token = (response) => {
this.setState({'token': response.data.access_token});
}
})
.catch(function(error){
// Tratar o erro.
console.log(error);
});
}
}
render() {
console.log(this.state.token);
return (
<View>
<Text style={styles.textLogin}> Login </Text>
<Button
title="Login"
onPress={() => this.props.navigation.navigate('Auth')}
/>
{ !!this.state.token && <Text>Token de acesso : {this.state.token}</Text> }
</View>
);
}
}
Alter
.then(function(response){
for.then(response => {
... Recommended reading: Why it is necessary to use bind when working with ES6 and Reactjs?– NoobSaibot
It worked man, thank you =)
– Mateus Henrique
Possible duplicate of Why it is necessary to use bind when working with ES6 and Reactjs?
– NoobSaibot