flutter - 为什么 initState 中的变量不可访问?

标签 flutter state-management flutter-state

我想在 initState 中创建一个 TextController,然后像处理好 child 一样处理它。但出于某种原因, Controller 在 intiState 之外不可用:

class _InputFieldEnterThingState extends State<InputFieldEnterThing> {
  @override
  void initState() {

    TextEditingController textController =
        TextEditingController(text: 'placeholder');
    super.initState();
  }

  @override
  void dispose() {
    textController.dispose();
    super.dispose();
  }

它告诉我“textController”未在 dispose() 中定义...同样,如果我尝试在构建方法中使用它。就像 varialbe 在 initState 中是严格本地的一样。我觉得我错过了一些非常明显的东西,但找不到。

最佳答案

textControllerinitState方法中的局部变量,需要将他设为全局,dispose方法会识别他。

实现方式:

class _InputFieldEnterThingState extends State<InputFieldEnterThing> {
  TextEditingController textController;  // make him global


  @override
  void initState() {
    textController =  // without redefine
        TextEditingController(text: 'placeholder'); 
    super.initState();
  }

  @override
  void dispose() {
    textController.dispose();
    super.dispose();
  }

关于flutter - 为什么 initState 中的变量不可访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71211577/

相关文章:

flutter - List.remove() 删除了正确的对象,但列表中对象的状态发生了变化,就好像最后一个条目正在被删除一样

flutter - 什么时候 route.didPop(result) 在 Flutter Navigator 2.0 中等于 false

ios - Xcode 无法为 ios 13.3.1 设备构建 flutter 代码,但在 13.3 ios 模拟器上运行代码

dart - 我怎样才能在一个小时前开始使用 Dart ?

flutter - 在此主页小部件上方找不到正确的 Provider<FirebaseUser>

Flutter Riverpod StateNotifier 在页面构建时加载数据

firebase - Flutter Firebase如何获取随机文档

flutter - Flutter:如何制作自定义的动画下拉菜单?

android - Flutter:当我可以使用全局变量并改用 setState 时,状态管理库需要什么?

list - 有什么方法可以在 Flutter 中处理应用程序状态中的列表?