
Se você quiser ir direto para o código, esse repositório aqui tá contendo uma API e um app com Expo que implementam tudo que falei nesse artigo:
L...
For further actions, you may consider blocking this person and/or reporting abuse
Bom demais, o processo de sincronização ocorre também quando o App está aberto em background?
valeu migo <3 se não me engano, o processo de sync deles funciona apenas quando a conexão é retomada dentro do aplicativo ativo. mas também tem a opção de sincronização manual, então provavelmente é possível implementar de forma personalizada a sincronização em background usando um expo-background-task da vida!
Uh nice, vou da uma testadaa
Arrasou! Bem interessante esse Legend State
Olá, seu projeto está ótimo. Consegui testá-lo em um POC interno.
A única coisa que não consegui fazer foi capturar os erros de chamada no front end.
Você poderia me ajudar com isso?
Atenciosamente e muito obrigado. Bom trabalho 😁
oiee, que bom que deu certo!! posso ajudar sim, como você tem tentado capturar os erros?
Olá, muito obrigado por sua resposta.
Tentei capturar no front-end qualquer erro de uma solicitação que é executada na sincronização de engenharia/estado, mas parece que, da forma como está implementado, esse erro não aparece na exibição.
Você pode confirmar que nenhum desses erros está ocorrendo? Porque estou um pouco confuso.
Saudações e obrigado ✌️
Entendi!! Dei uma testada aqui forçando o erro da requisição e realmente não apareceu na exibição!! Provavelmente porque no meu exemplo, tô usando o retry de forma infinita sem um try catch. ou seja, vai ficar sempre tentando novamente e não dispara o erro.
Adicione um try catch por volta da chamada a API ( e precisa dar um throw no erro quando a resposta não estiver OK e no catch também) e remova o retry infinito, deixa em um valor menor tipo tentar umas 3 vezes! Acho que assim dá bom
export const postStore$ = observable(syncedCrud({
...resto
retry: {
times: 1
},
syncMode: 'auto',
fieldUpdatedAt: 'updatedAt',
fieldCreatedAt: 'createdAt',
}));
const getPosts = async () => {
try {
const response = await fetch(
${API_URL}/psosts
); //Url errada pra forçar erroif(!response.ok) {
throw new Error(
Error fetching posts: ${response.statusText}
); // Isso vai ir lá pro error que está sendo renderizado no front}
const data = await response.json();
return data.data;
} catch (error) {
console.error('Error fetching posts:', error);
throw error; //Precisamos lançar o erro pra propagar
}
};
Muito bem, isso é ótimo! Muito obrigado por sua atenção, você foi de grande ajuda.
Boa sorte em seus próximos projetos 😁✌️
Muito interessante, estou batendo cabeça com ele já algum tempo, como você faria pra usar ele armazenando token do login?
valeu! dá pra criar uma store/estado usando observable só pra essa parte de autenticação,e após o login você vai popular a store de autenticação com as informações do usuário, como o token do login. ae depois você pode puxar esse token em várias telas pra fazer chamadas autenticadas a api, por exemplo, e quando o usuário for deslogar remove as infos
Baixei o seu codigo e nao deu muito certo nao XD, ele nao guarda nem no app nem na api (sim usei ngrok, e mesmo usando postman like a api recebia normalmente as requisicoes), é justamente este erro que estou recebendo. Nem sei por onde comecar a debugar porque nao apresenta nenhum error ou warning no terminal.
hmmm não faço ideia do que possa ser iahsush, precisaria ver algum print ou video reproduzindo o erro! o repositorio é publico, se quiser você pode abrir uma issue com mais detalhes lá pelo github e ae consigo entender melhor :)
Você teria um exemplo? Meus testes são assombrosos, ao tentar popular a store simplesmente nenhum console.log depois eh exibido no terminal, e sequer recebi mensagem de erro.
pior que publico num tenho nenhum exemplo, mas se tu tiver algum repo com suas tentativas pode mandar que dou uma olhadinha