Como visualizar detalhes do usuario com React Native
Neste tutorial, serƔ apresentado como criar a tela para visualizar detalhes do usuƔrio com React Native.
Primeiramente, serƔ abordado como recuperar as informaƧƵes do usuƔrio na API.
Em seguida, serĆ” explicado como criar o CSS para apresentar os dados no aplicativo.
Por fim, serƔ demonstrado como apresentar na tela as informaƧƵes do usuƔrio com React Native.
Download do cĆ³digo fonte desenvolvido na aula: Download
Curso React Native e Node.js: Mais Detalhes do Curso
Playlist completa sobre Laravel: Acessar
Receber as aulas gratuitas do curso React Native e Node.js: Acessar
Para comeƧar, Ć© utilizado como base o projeto da aula "Como enviar parĆ¢metro entre telas do aplicativo com React Native".
No arquivo "src/pages/ViewUser/index.js", ou seja, na tela de visualizaĆ§Ć£o, acrescentado o useEffect.
// useEffect - Criar efeitos colaterais em componentes funcionais
// useState - Adicionar estado ao componente
import { useEffect, useState } from "react";
Para chamar a funĆ§Ć£o de recuperar usuĆ”rios ao acessar a tela de visualizaĆ§Ć£o.
// Executar quando o usuĆ”rio carregar a tela e chamar a funĆ§Ć£o getUser
useEffect(() => {
getUser();
}, []);
Criada a funĆ§Ć£o getUser, que recebe o parĆ¢metro userId enviado entre as telas.
// FunĆ§Ć£o para recuperar os detalhes do usuĆ”rio
const getUser = async () => {
// Receber como parĆ¢metro o id registro
const userId = route.params.userId;
}
IncluĆdo o arquivo que contĆ©m as credenciais da API.
// Arquivo com as configuraƧƵes da API
import api from "../../config/api";
Dentro do mĆ©todo "getUser", realizada a solicitaĆ§Ć£o para a API e verificado o status que a API retornou.
// FunĆ§Ć£o para recuperar os detalhes do usuĆ”rio
const getUser = async () => {
// Receber como parĆ¢metro o id registro
const userId = route.params.userId;
// RequisiĆ§Ć£o para a API indicando a rota
await api.get(`/users/${userId}`)
.then((response) => { // Acessar o then quando a API retornar status sucesso
}).catch((err) => { // Acessar o catch quando a API retornar status erro
});
}
Se a API retornar um erro, ou seja, status 400, o cĆ³digo acessa o bloco .catch, apresenta o alerta com a mensagem de erro e faz o redirecionamento para a tela de listagem.
// FunĆ§Ć£o para recuperar os detalhes do usuĆ”rio
const getUser = async () => {
// Receber como parĆ¢metro o id registro
const userId = route.params.userId;
// RequisiĆ§Ć£o para a API indicando a rota
await api.get(`/users/${userId}`)
.then((response) => { // Acessar o then quando a API retornar status sucesso
}).catch((err) => { // Acessar o catch quando a API retornar status erro
if (err.response) { // Acessa o IF quando a API retornar erro
Alert.alert("Ops", err.response.data.mensagem);
// Redirecionar o usuƔrio para tela listar usuƔrios
navigation.navigate('ListUsers');
} else { // Acessa o ELSE quando a API nĆ£o responder
Alert.alert("Ops", "Erro: Tente novamente!");
// Redirecionar o usuƔrio para tela listar usuƔrios
navigation.navigate('ListUsers');
}
});
}
Se a API retornar sucesso, ou seja, status 200, o cĆ³digo acessa o bloco .then e atribui as informaƧƵes do usuĆ”rio em "user", utilizando o mĆ©todo "setUser".
// FunĆ§Ć£o para recuperar os detalhes do usuĆ”rio
const getUser = async () => {
// Receber como parĆ¢metro o id registro
const userId = route.params.userId;
// RequisiĆ§Ć£o para a API indicando a rota
await api.get(`/users/${userId}`)
.then((response) => { // Acessar o then quando a API retornar status sucesso
// Setar os dados do usuƔrio retornado da API
setUser(response.data.user);
}).catch((err) => { // Acessar o catch quando a API retornar status erro
if (err.response) { // Acessa o IF quando a API retornar erro
Alert.alert("Ops", err.response.data.mensagem);
// Redirecionar o usuƔrio para tela listar usuƔrios
navigation.navigate('ListUsers');
} else { // Acessa o ELSE quando a API nĆ£o responder
Alert.alert("Ops", "Erro: Tente novamente!");
// Redirecionar o usuƔrio para tela listar usuƔrios
navigation.navigate('ListUsers');
}
});
}
Na implementaĆ§Ć£o acima, as informaƧƵes do usuĆ”rio sĆ£o atribuĆdas em "user", sendo necessĆ”rio criĆ”-lo utilizando o useState.
// Armazenar as informaƧƵes do usuƔrio
const [user, setUser] = useState([]);
Com as informaƧƵes do usuƔrio recuperadas, serƔ impresso o valor. Primeiramente, porƩm, Ʃ criado o CSS no arquivo "src/styles/custom_adm.js".
export const Content = styled.View`
flex-direction: row;
border-bottom-color: #c0c0c0;
border-bottom-width: 1px;
`;
export const TitleViewContent = styled.Text`
padding-top: 15px;
color: #c0c0c0;
font-size: 18px;
`;
export const ViewContent = styled.Text`
padding-bottom: 15px;
color: #f5f5f5;
font-size: 18px;
padding-top: 15px;
`;
Para finalizar, as informaƧƵes do usuĆ”rio serĆ£o impressas na tela.
return (
<ScrollView contentContainerStyle={{ flexGrow: 1 }}>
<Container>
<TitleList>Detalhes do UsuƔrio</TitleList>
<Content>
<TitleViewContent>ID: </TitleViewContent>
<ViewContent>{user.id}</ViewContent>
</Content>
<Content>
<TitleViewContent>Nome: </TitleViewContent>
<ViewContent>{user.name}</ViewContent>
</Content>
<Content>
<TitleViewContent>E-mail: </TitleViewContent>
<ViewContent>{user.email}</ViewContent>
</Content>
</Container>
</ScrollView>
);
Baixar o cĆ³digo-fonte completo do projeto.
Bom, era isso. Espero que o tutorial tenha sido Ćŗtil!