有谁能告诉我为什么当我把CountProvider放在initState和build函数之外时,这会给我一个错误,当我把CountProvider放在initState内部时,它也在build函数enter image description here之外时,错误会发生
enter image description here的
错误是[无法在初始化器中访问示例成员'context'。请尝试将对示例成员的引用替换为其他表达式]
有谁能告诉我为什么当我把CountProvider放在initState和build函数之外时,这会给我一个错误,当我把CountProvider放在initState内部时,它也在build函数enter image description here之外时,错误会发生
enter image description here的
错误是[无法在初始化器中访问示例成员'context'。请尝试将对示例成员的引用替换为其他表达式]
2条答案
按热度按时间ru9i0ody1#
正如我们在这里看到的
框架在使用StatefulWidget.NETState创建State对象之后和调用initState之前将它们与BuildContext关联
因此,initState可以访问Stateful Widget的
context
,因为在创建State和调用initState之间,已经可以传递BuildContext。所以
1.状态由StatefulWidget创建。
State对象是由框架通过在膨胀StatefulWidget以将其插入树时调用StatefulWidget.tagState方法来创建的。
1.上下文与状态相关联。
1.调用initState,然后它也可以访问上下文。
然后在initState之后调用build,我们就有了render。
按照这种顺序,在调用构建之后,才调用任何其他方法,因此代码中的任何此类方法可能无法访问
initState
或build
方法范围之外的上下文dl5txlt92#
我想你是想声明一个变量,你想在initState方法和build方法中访问它。我想你可以全局声明这个变量,然后在initState方法中初始化它。
字符串