クラス"EditProfilePage"でsetState メソッドを呼び出したいので、statefulWidget に変更する必要がありました。
class EditProfilePage extends StatefulWidget {
@override
_EditProfilePageState createState() => _EditProfilePageState();
}
class _EditProfilePageState extends State<EditProfilePage> {
TextEditingController nameController = new TextEditingController();
TextEditingController bioController = new TextEditingController();
File file;
.
.
.
applyChanges() {
Firestore.instance
.collection('insta_users')
.document(currentUserModel.id)
.updateData({
"displayName": nameController.text,
"bio": bioController.text
});
}
}
しかし今、私のクラス「Profile_page」は「EditProfilePage」の「applyChanges()」メソッドを見逃しているようで、次のエラーをスローします:
メソッド「applyChanges」がクラス「EditProfilePage」に対して定義されていません。
'EditProfilePage 'からapplyChanges()を呼び出す'Profile_Page'のメソッドを次に示します。
editProfile() {
EditProfilePage editPage = new EditProfilePage();
Navigator.of(context)
.push(new MaterialPageRoute<bool>(builder: (BuildContext context) {
return new Center(
child: new Scaffold(
appBar: new AppBar(
leading: new IconButton(
icon: new Icon(Icons.close),
onPressed: () {
Navigator.maybePop(context);
},
),
title: new Text('Edit Profile',
style: new TextStyle(
color: Colors.black, fontWeight: FontWeight.bold)),
elevation: 1.0,
backgroundColor: Colors.white,
actions: <Widget>[
new IconButton(
icon: new Icon(
Icons.check,
color: Colors.blueAccent,
),
onPressed: () {
editPage.applyChanges();
Navigator.maybePop(context);
})
この問題を解決する方法について何か提案はありますか? インポートを忘れていませんでした。
ところで、私はフラッターが初めてで、ダーツを理解しようとしています。よろしくお願いします!