gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 01:53:07 25 4
gpt4 key购买 nike

我想在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com