質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

解決済

1回答

1290閲覧

【Flutter】メモリに値を保存できない

smilax

総合スコア23

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

0クリップ

投稿2020/09/24 00:36

リポジトリに一時的に値を保存しておきたいのですが、getter、setterが上手く機能しないです。

dart

1import 'package:talent/domain/repository/Repositories.dart'; 2import 'package:talent/domain/model/Talent.dart'; 3 4class LocalCashMyPageRepository { 5 Talent _talent; 6 String _asdf = ""; 7 8 get a => _asdf; 9 10 get talent => _talent; 11 set(Talent talent) { 12 _talent.talentName = talent.talentName; 13 _talent.message = talent.message; 14 _talent.catchCopy = talent.catchCopy; 15 _talent.tag = talent.tag; 16 _talent.profileImage = talent.profileImage; 17 _talent.monthlyReception = talent.monthlyReception; 18 _talent.messagePrice = talent.messagePrice; 19 _talent.twitterID = talent.twitterID; 20 _talent.instagramID = talent.instagramID; 21 _talent.tiktokID = talent.tiktokID; 22 _talent.youtubeChannel = talent.youtubeChannel; 23 _talent.nativePlace = talent.nativePlace; 24 _talent.bloodType = talent.bloodType; 25 _talent.hobby = talent.hobby; 26 _talent.specialAbility = talent.specialAbility; 27 _talent.activity = talent.activity; 28 _talent.birthdaySetting = talent.birthdaySetting; 29 _talent.reproduce = talent.reproduce; 30 } 31}

別のファイルで以下のようにしてリポジトリのsetterとgetterを呼び出していますが、出力結果はnullとなってしまいます

dart

1 void saveFile() async { 2 var talent = Talent( 3 talentName: talentName, 4 message: message, 5 catchCopy: catchCopy, 6 tag: tag, 7 profileImage: profileImage, 8 monthlyReception: monthlyReception, 9 messagePrice: messagePrice, 10 twitterID: twitterID, 11 instagramID: instagramID, 12 tiktokID: tiktokID, 13 youtubeChannel: youtubeChannel, 14 nativePlace: nativePlace, 15 bloodType: bloodType, 16 hobby: hobby, 17 specialAbility: specialAbility, 18 activity: activity, 19 birthdaySetting: birthdaySetting, 20 reproduce: reproduce, 21 ); 22 LocalCashMyPageRepository().set(talent); 23 print(LocalCashMyPageRepository().talent.talentName);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

dart

1 LocalCashMyPageRepository().set(talent); // [1] 2 print(LocalCashMyPageRepository().talent.talentName); // [2]

LocalCashMyPageRepositoryがシングルトンでないのであれば、[1][2]は別々のインスタンスです。
変数を介して同じインスタンスを操作するようにするといいと思います。

dart

1 var repos = LocalCashMyPageRepository(); 2 repos.set(talent); 3 print(repos.talent.talentName);

出力結果はnullとなってしまいます

あと提示されているコードだと、null と出力されずにエラーになりました。
Uncaught Error: NoSuchMethodError: method not found: 'set$talentName' on null

投稿2020/09/24 04:23

satokei

総合スコア1217

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

smilax

2020/09/24 05:53

ご回答ありがとうございます。 エラーになってしまうのはなぜでしょうか
smilax

2020/09/24 06:09

無事解決しました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問