Q&A
実現したいこと
main.dartファイル内の_MyHomePageStateクラスに記述したメソッドを
home.dartファイル内の_MyHome内で使いたいのですが上手くいきません。
どこか根本的な部分を理解できていないような気がしますのでアドバイスいただきたいです。
前提
・main.dart内でimport 'home.dart';と記述している
・main.dartとhome.dartは同一フォルダ内の同じ階層にある
・_MyHome内で_MyHomePageStateクラスをインスタンス化して使用したい
・vscodeを使っておりクラス名を入力したときに候補が表示されるが、同一ファイル内の
クラス目の候補は表示されるが、別ファイルのクラス名を入力しても認識されない。
該当のソースコード
main.dart
1//だいぶ省略しています 2import 'package:flutter/material.dart'; 3import 'home.dart'; 4 5class MyHomePage extends StatefulWidget { 6 const MyHomePage({super.key}); 7 8 @override 9 State<MyHomePage> createState() => _MyHomePageState(); 10} 11 12class _MyHomePageState extends State<MyHomePage> { 13 //画像の複数選択モードのON/OFFの状態を保持する変数 14 bool _buttonFlag = false; 15 16 **//home.dartから使いたいメソッド** 17 void _pickImages() { 18 setState(() { 19 _buttonFlag = true; 20 }); 21 } 22
home.dart
1class Home extends StatefulWidget { 2 const Home({super.key}); 3 @override 4 State<Home> createState() => _MyHome(); 5} 6 7class _MyHome extends State<Home> { 8 9**//main.dartのMyHomePageStateクラスをインスタンス化** 10**//ここで_MyHomePageStateがvscode上で認識されない。** 11_MyHomePageState pickImage = _MyHomePageState(); 12 13 @override 14 Widget build(BuildContext context) { 15 return Scaffold( 16 appBar: AppBar( 17 backgroundColor: Colors.black, 18 leading: IconButton( 19 icon: Icon(Icons.add), 20 onPressed: () => setState(() { 21 22 **//ここでメソッドを使用したい** 23 pickImage.pickImages(); 24 25 }), 26 ), 27 leadingWidth: 20, 28 title: const Text("料理を選ぶ"), 29 actions: <Widget>[ 30 IconButton( 31 icon: Icon(Icons.add), 32 onPressed: () { 33 showDialog( 34 context: context, 35 builder: (context) => const CustomDialogBox(), 36 ); 37 }, 38 ), 39 const Center( 40 child: Padding( 41 padding: EdgeInsets.all(5.0), 42 child: Text( 43 '料理を登録', 44 style: TextStyle(fontSize: 20), 45 ), 46 )) 47 ], 48 ),
試したこと
・vscode再起動
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/02/25 12:23