dartステートフルウィジェットがデータを状態エラーに渡します:ウィジェットがnullです

LeptonByte

Firebaseストレージから画像をダウンロードしてキャッシュしたい。しかし、ステートフルウィジェットから状態へのパスを渡すときに問題が発生します。

class FirebaseCachedImage extends StatefulWidget{
  final String mPath;

  FirebaseCachedImage({ Key key, this.mPath }) : super(key: key);

  @override
  State<StatefulWidget> createState() => _FirebaseCachedImage();
}

class _FirebaseCachedImage extends State<FirebaseCachedImage> {
  final FirebaseStorage storage = FirebaseStorage(app: Firestore.instance.app, storageBucket: 'gs://fluttertest-b7c52.appspot.com/');
  Uint8List imageBytes;
  String errorMsg;

  _FirebaseCachedImage() {
    String path = widget.mPath;
    storage.ref().child(path).getData(10000000).then((data) =>
        setState(() {
          imageBytes = data;
        })
    ).catchError((e) =>
        setState(() {
          errorMsg = e.error;
        })
    );
  }

  @override
  Widget build(BuildContext context) {
    var img = imageBytes != null ? Image.memory(imageBytes, fit: BoxFit.cover,) : Text(errorMsg != null ? errorMsg : "Loading...");

    return new Container(child: img);
  }
}

問題は次の行です。

String path = widget.mPath;

エラーをスローします:

The following NoSuchMethodError was thrown building MyGridTile:
I/flutter (11523): The getter 'mPath' was called on null.
I/flutter (11523): Receiver: null
I/flutter (11523): Tried calling: mPath
I/flutter (11523): 
I/flutter (11523): When the exception was thrown, this was the stack:
I/flutter (11523): #0      Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:50:5)
I/flutter (11523): #1      new _FirebaseCachedImage (package:pre_alpha_release/firebase_cached_image.dart:21:26)
I/flutter (11523): #2      FirebaseCachedImage.createState (package:pre_alpha_release/firebase_cached_image.dart:12:42)
I/flutter (11523): #3      new StatefulElement (package:flutter/src/widgets/framework.dart:3746:23)
I/flutter (11523)
[....]

何か案は?

diegoveloper

State要素がまだ関連付けられていないため、コンストラクターのウィジェットにアクセスできません。それをinitState状態内のメソッドに移動します

          @override
          void initState() {
            super.initState();
            String path = widget.mPath;
            storage.ref().child(path).getData(10000000).then((data) =>
                setState(() {
                  imageBytes = data;
                })
            ).catchError((e) =>
                setState(() {
                  errorMsg = e.error;
                })
            );
          }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ステートフルウィジェットにデータを渡す

分類Dev

ステートフルウィジェットにデータを渡す方法

分類Dev

オブジェクトをステートフルウィジェットにフラッター渡す

分類Dev

子が状態を更新していない状態のフラッターステートフルウィジェット

分類Dev

設定された状態値の変更を親ウィジェットから子ウィジェットにフラッターで渡す方法は?

分類Dev

フラッター:ステートフルウィジェット内でステートフルウィジェットの配列を使用すると、「ARenderFlexオーバーフロー」が発生します

分類Dev

Flutterステートフルウィジェットは状態を再作成します

分類Dev

フラッターで、ステートフルウィジェット/ステートに新しいデータが利用可能であり、再構築する必要があることをどのように知らせることができますか?

分類Dev

ステートフルウィジェットをフラッター-ボタンクリック時に状態を保存する際の問題

分類Dev

jsonデータをフラッターウィジェットに渡す方法

分類Dev

子ステートレスウィジェットからステートフルウィジェットの状態を設定する方法

分類Dev

フラッターステートフルウィジェットの状態が初期化されていません

分類Dev

Flutter-ステートフルウィジェットはタブを切り替えるときにカウンター状態を保存しません

分類Dev

別のステートフルウィジェットクラスからテキストフィールドデータを取得します

分類Dev

以下のコンストラクターはdartでどのように機能しますか、ウィジェットを抽出し、フラッターはウィジェットに以下のコンストラクターを与えました

分類Dev

ウィジェットを独自のクラスにフラッターでカプセル化しますか?

分類Dev

ステートフルウィジェット(フラッター)の現在の状態

分類Dev

BLOC状態の変更後にステートフルウィジェットが再構築されない

分類Dev

ステートフルウィジェットを持たない関数を返す関数の変数の値を状態に設定します

分類Dev

ウィジェットの状態をlistview.builderのインデックスにフラッターで設定する方法

分類Dev

Flutter:2つのステートフルウィジェットからデータを渡す

分類Dev

ライブラリエラーからウィジェットを使用する要素タイプ「{ウィジェット}」をリストタイプ「ウィジェット」に割り当てることができません

分類Dev

マテリアルウィジェットが見つかりませんテキストフィールドウィジェットにはマテリアルウィジェットの祖先が必要です

分類Dev

マテリアルウィジェットが見つかりませんテキストフィールドウィジェットにはマテリアルウィジェットの祖先が必要です

分類Dev

ステートレスウィジェットがフラッターに配置されているかどうかを確認します

分類Dev

変数インデックスをフラッターウィジェットに渡す

分類Dev

状態のフラッターに基づいてウィジェットの色を変更する方法

分類Dev

エドワードエンジェルのOpenGLコードの例:Lenovo X60で正常に動作しますが、デスクトップでウィンドウをレンダリングしません(Intel HDグラフィックス)

分類Dev

ウィジェットが文字列IDを使用して参照されるときに、ステートフルウィジェットに引数を渡すにはどうすればよいですか?

Related 関連記事

  1. 1

    ステートフルウィジェットにデータを渡す

  2. 2

    ステートフルウィジェットにデータを渡す方法

  3. 3

    オブジェクトをステートフルウィジェットにフラッター渡す

  4. 4

    子が状態を更新していない状態のフラッターステートフルウィジェット

  5. 5

    設定された状態値の変更を親ウィジェットから子ウィジェットにフラッターで渡す方法は?

  6. 6

    フラッター:ステートフルウィジェット内でステートフルウィジェットの配列を使用すると、「ARenderFlexオーバーフロー」が発生します

  7. 7

    Flutterステートフルウィジェットは状態を再作成します

  8. 8

    フラッターで、ステートフルウィジェット/ステートに新しいデータが利用可能であり、再構築する必要があることをどのように知らせることができますか?

  9. 9

    ステートフルウィジェットをフラッター-ボタンクリック時に状態を保存する際の問題

  10. 10

    jsonデータをフラッターウィジェットに渡す方法

  11. 11

    子ステートレスウィジェットからステートフルウィジェットの状態を設定する方法

  12. 12

    フラッターステートフルウィジェットの状態が初期化されていません

  13. 13

    Flutter-ステートフルウィジェットはタブを切り替えるときにカウンター状態を保存しません

  14. 14

    別のステートフルウィジェットクラスからテキストフィールドデータを取得します

  15. 15

    以下のコンストラクターはdartでどのように機能しますか、ウィジェットを抽出し、フラッターはウィジェットに以下のコンストラクターを与えました

  16. 16

    ウィジェットを独自のクラスにフラッターでカプセル化しますか?

  17. 17

    ステートフルウィジェット(フラッター)の現在の状態

  18. 18

    BLOC状態の変更後にステートフルウィジェットが再構築されない

  19. 19

    ステートフルウィジェットを持たない関数を返す関数の変数の値を状態に設定します

  20. 20

    ウィジェットの状態をlistview.builderのインデックスにフラッターで設定する方法

  21. 21

    Flutter:2つのステートフルウィジェットからデータを渡す

  22. 22

    ライブラリエラーからウィジェットを使用する要素タイプ「{ウィジェット}」をリストタイプ「ウィジェット」に割り当てることができません

  23. 23

    マテリアルウィジェットが見つかりませんテキストフィールドウィジェットにはマテリアルウィジェットの祖先が必要です

  24. 24

    マテリアルウィジェットが見つかりませんテキストフィールドウィジェットにはマテリアルウィジェットの祖先が必要です

  25. 25

    ステートレスウィジェットがフラッターに配置されているかどうかを確認します

  26. 26

    変数インデックスをフラッターウィジェットに渡す

  27. 27

    状態のフラッターに基づいてウィジェットの色を変更する方法

  28. 28

    エドワードエンジェルのOpenGLコードの例:Lenovo X60で正常に動作しますが、デスクトップでウィンドウをレンダリングしません(Intel HDグラフィックス)

  29. 29

    ウィジェットが文字列IDを使用して参照されるときに、ステートフルウィジェットに引数を渡すにはどうすればよいですか?

ホットタグ

アーカイブ