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

Como enviar informações para outra tela sem ser pelo navigate?

Anteriormente foi feito o envio da informação nome e timestamp pelo navigation.navigate() e pelo useRoute(). Minha duvida é como faço para enviar informações sem ser pelo navigation. um exemplo com o navigation é esse:

navigation.navigate('Carrinho', { compra: { nome, produtor, preco }}) //Comando não ideal para passar parâmetros para a tela Carrinho. !Buscar outra alternativa
 navigation.navigate('HomeScreen', { compra: { nome, timestamp: + new Date() }})
export default function Carrinho(){

    const route = useRoute();
    console.log(route.params);
    }

mas dessa maneira a tela altera para o "carrinho" e depois vai para a "HomeScreen" o que não é ideal, o que estou procurando é um método para que o aplicativo vá para a tela "HomeScreen" e também envie os parâmetros para a tela "carrinho", sem precisar passar por ela.

Sabem como posso implementar essa função?

1 resposta
solução!

Fala, Gustavo! Tudo bem ?

Então, tem outras maneiras sim de fazer esse envio de informação para uma outra página sem por parâmetro. Temos uma ferramenta que se chama Context Api, e o seu objetivo é disponibilizar uma maneira de passar os dados entre a árvore de componentes sem precisar passar props manualmente em cada nível. Ou seja, é justamente o que você está querendo fazer, enviar informações para diferentes componentes sem ter uma ligação direta entre eles. Aqui na alura temos o curso React Native: Utilizando o Context Api nas suas aplicações em que ele explica sobre essa ferramenta e como utilizar as mesmas em seus projetos.

Uma outra ferramenta que segue na mesma linha do Context Api é o Redux, que tem uma ideia parecida em gerenciar os estados globais de uma aplicação. Vou deixar aqui o link do artigo Estados globais: diferenças entre Redux e Context API que fala um pouco mais sobre essas ferramentas e suas diferenças.

Eu espero que eu tenha ajudado e qualquer coisa estou por aqui.

Abraço e bons estudos.