Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

NÃO É POSSÍVEL REALIZAR LOGIN

Estou tentando logar com os usuarios "alots" e "rafael" com a senha "123456" mas em ambos não esta sendo possivel logar.

 efetuaLogin() {
        const uri         = 'https://instalura-api.herokuapp.com/api/public/login';
        const requestInfo = {
            method: 'POST',
            body: JSON.stringify({
              login: this.state.usuario,
              senha: this.state.senha,  
            }),
            headers: new Headers({
                'Content-type': 'application/json'
            })
        }

        fetch(uri, requestInfo)
        .then(response => {
            if(response.ok)
             return response.text();

            throw new Error("Não foi possível efetuar login")
        })
        .then(token => console.warn(token))
    }

    render() {
        return(
            <View style={styles.container}>
                <View style={styles.form}>
                    <TextInput autoCapitalize="none" style={styles.input} placeholder={'email ou usuario'} onChangeText={texto => this.setState({usuario: texto})}/>
                    <TextInput secureTextEntry={true} style={styles.input} placeholder={'senha'} onChangeText={texto => this.setState({usuario: texto})}/>

                    <TouchableHighlight onPress={this.efetuaLogin.bind(this)} underlayColor="white">
                        <View style={styles.button}>
                            <Text style={styles.buttonText}>Login</Text>
                        </View>
                    </TouchableHighlight>

                </View>
            </View>    
        );
    }
1 resposta
solução!

Fala Arthur, tudo bem ?

Seu código está quase todo certinho para o login ocorrer. O único problema está nessa parte:

<TextInput autoCapitalize="none" style={styles.input} placeholder={'email ou usuario'} onChangeText={texto => this.setState({usuario: texto})}/>
<TextInput secureTextEntry={true} style={styles.input} placeholder={'senha'} onChangeText={texto => this.setState({usuario: texto})}/>  // <--- esse setState está dando ruim

O problema é que no onChangeText dos dois campos você passa a implementação que altera o estado do this.state.usuario, então o `this.state.senha continua no estado inicial (vazio).

Altere o segundo campo pra atualizar o estado da senha e imagino que vai resolver.

Abraço!