TextFieldに入力した文字列を出力するTextButton
があります。
変数newTaskName
に入力中の値を代入し、ボタンをタップ時に出力する、という処理を書きたいのですが、TextButton
のonPressed(){}で変数を呼び出そうとするとエラーになります。
dart
1import 'package:flutter/material.dart'; 2 3class AddTask extends StatelessWidget { 4 AddTask(this.addTaskCallBack); 5 6 final Function addTaskCallBack; 7 8 9 Widget build(BuildContext context) { 10 11 // TextFieldの入力値が代入される変数 12 String newTaskName; 13 14 return SingleChildScrollView( 15 child: Container( 16 padding: 17 EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom), 18 color: const Color(0xff6a6a6a), 19 child: Container( 20 padding: const EdgeInsets.all(20.0), 21 decoration: const BoxDecoration( 22 color: Colors.white, 23 borderRadius: BorderRadius.only( 24 topLeft: Radius.circular(20.0), 25 topRight: Radius.circular(20.0), 26 ), 27 ), 28 child: Column( 29 crossAxisAlignment: CrossAxisAlignment.stretch, 30 children: [ 31 Text( 32 'Add Task', 33 textAlign: TextAlign.center, 34 style: TextStyle(color: Colors.pink.shade100, fontSize: 30.0), 35 ), 36 TextField( 37 autofocus: true, 38 textAlign: TextAlign.center, 39 decoration: InputDecoration( 40 border: UnderlineInputBorder( 41 borderSide: BorderSide(color: Colors.pink.shade100)), 42 ), 43 onChanged: (value) { 44 newTaskName = value; // 入力中の文字列を変数に代入 45 print(newTaskName); 46 }, 47 ), 48 const SizedBox( 49 height: 20.0, 50 ), 51 TextButton( 52 onPressed: () { 53 print(newTaskName); // 出力 54 }, 55 child: Container( 56 color: Colors.pink.shade100, 57 height: 50.0, 58 child: const Center( 59 child: Text( 60 'Add', 61 style: TextStyle(color: Colors.white, fontSize: 18.0), 62 ), 63 ), 64 ), 65 ) 66 ], 67 ), 68 ), 69 ), 70 ); 71 } 72} 73
新しいバージョンになってからTextButtonのonPressedの中では変数は使えなくなったのでしょうか?
TextField
のonChangedの中ではアクセスできているので原因がわかりません。
ご助力お願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。