簡體   English   中英

嘗試從另一個小部件打印 Textfield 的文本並始終在 flutter 中打印空(僅 I/flutter ( 9049): )

[英]Trying to print the text of Textfield from another widget and always print empty ( just I/flutter ( 9049): ) in flutter

TextEditingController _name = TextEditingController();

Future<String> randomFun() async{
  return _name.text;
}

在另一堂課中:

print(await(theFirstClass.randomFun()));

它總是打印 I/flutter ( 9049 ):

我已經在 Textfield 中寫了它必須具有文本值。

我在同一個班級打印它並在從另一個班級打印時解決了這個問題,它看不到 _name 的值,我不知道為什么。

更多解釋:我需要通過另一個小部件中的按鈕打印 TextField 的文本

如果我像這樣static TextEditingController _name = TextEditingController();那樣為 _name 添加靜態,它就可以工作static TextEditingController _name = TextEditingController();

但我需要沒有靜態的方法

我的代碼是這樣的:

一個頁面中的 2 個有狀態小部件 第一個小部件 FirstClass 第二個小部件 SecondClass FirstClass

class FirstClassextends State<First> {
...
  TextEditingController_name = TextEditingController();

  Future<String> randomFun() async{
    return _name.text;
  }
...
  TextField(
  decoration: InputDecoration(labelText: 'Enter your name'),
  controller: _name,
  ),
...
}

二等艙

class secondClassextends State<second> {
...
  FirstClass firstClass = FirstClass();
...
  IconButton(
    icon: Icon(Icons.person, color: Colors.white,),
    onPressed: ()async{
      print(await(firstClass.randomFun()));
    }
  ),

我再次需要通過按下另一個小部件中的按鈕來打印/獲取 TextField 的文本。

改變這個

Future<String> randomFun() async{
    return _name.text;
  }

Future<String> randomFun() async {
    return Future.value(_name.text);
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM