Olá!
Nessa aula, foi criado um hook customizado, useCarrinhoContext()
, dentro do arquivo Carrinho.js.
Esse hook faz uso do contexto atribuído à const CarrinhoContext
, cujos valores de contexto foram indicados em outra const, a CarrinhoProvider
. Todas são do mesmo arquivo, Carrinho.js.
Nas aulas anteriores, foi explicado que um componente tem acesso aos valores de um contexto, quando ele é subcomponente do provider. Neste caso, os componentes precisam ser subcomponentes de <CarrinhoProvider />
para ter acesso aos valores de CarrinhoContext
.
Mas e no caso do hook customizado? Por que ele consegue acessar os valores de CarrinhoProvider
? Eu tenho duas suposições:
- O hook consegue acessar os valores por estar dentro do mesmo arquivo Carrinho.js, em que também estão definidos
CarrinhoContext
eCarrinhoProvider
; - O hook consegue acessar os valores por que ele é chamado no componente
<Produto />
, que é subcomponente de<Feira />
, o qual, por sua vez, é subcomponente de<CarrinhoProvider />
.
Por favor, poderiam informar se alguma dessas suposições está correta? Eu tendo a achar que a 2 seria a explicação, mas ainda não tenho segurança nem conhecimento suficiente para ter certeza. Para mim é difícil entender "quem vê o que" quando há essa separação de responsabilidades...
Obrigado!