Eu sou novo em agitar e quando quero chamar meu contexto no InitState, ele gera um erro: o que é isso,
BuildContext.inheritFromWidgetOfExactType
mas depois uso didChangeDependencies e ele funciona corretamente.
agora eu tenho 2 pergunta:
1-por que não podemos chamar nosso contexto em initState, mas não há problema para didChangeDependencies? (porque, como li no documento oficial This method is also called immediately after [initState]
, os dois serão chamados antes do método de compilação.)
2-por que temos acesso ao contexto fora do método build (porque lá temos build(BuildContext context)
e podemos usar nosso contexto, mas em didChangeDependencies não temos nada parecido didChangeDependencies(BuildContext context)
, portanto, de onde podemos chamar o contexto para usá-lo)?
initState
documentaçãoEntão, você precisa usar
BuildContext.inheritFromWidgetOfExactType
nodidChangeDependencies
.context
. É por isso que você tem acesso ao contexto fora do método de compilação.Em relação
build(BuildContext context)
, obuild
método aceitacontext
do widget pai. Isso significa que esse parâmetroBuildContext context
não é o contexto atual do widget, mas o contexto de seu pai.fonte
A resposta está aqui
fonte