flutter:サポートされていない操作:変更不可能なリストに追加できません

ムハンマド

StatelessWidget内にListViewがあります。アイテムがあり、すべてのアイテムにチェックボックスが含まれています。誰かがアイテムをチェックするとき、ListViewがこれをパラメーターとして別のページに送信するようにします。しかし、私がそれをするとき、それは私にこのエラーを与えています:

I/flutter ( 7067): The following UnsupportedError was thrown while handling a gesture:
I/flutter ( 7067): Unsupported operation: Cannot add to an unmodifiable list
I/flutter ( 7067): When the exception was thrown, this was the stack:

これが私のコードです

class StudentsList extends StatelessWidget {
  final List<Child> mList;
  StudentsList({this.mList});

  @override
  Widget build(BuildContext context) {
    List<Child> selectedList = [];

    return Container(
      margin: EdgeInsets.only(top: 50, bottom: 20),
      child: ListView.builder(
        shrinkWrap: true,
        physics: ClampingScrollPhysics(),
        itemCount: mList == null ? 0 : mList.length,
        padding: EdgeInsets.only(right: 10),
        itemBuilder: (BuildContext context, int position) {
          return GestureDetector(
            onTap: () {
              if (selectedList.isEmpty) {
                Navigator.push(
                  context,
                  new MaterialPageRoute(
                    builder: (BuildContext context) => SolokPage(
                      mChildList: [mList[position]],
                      isTeacher: true,
                    ),
                  ),
                );
              } else {
                if (!selectedList.contains(mList[position])) {
                  selectedList.add(mList[position]);
                }
                Navigator.push(
                  context,
                  new MaterialPageRoute(
                    builder: (BuildContext context) => SolokPage(
                      mChildList: selectedList,
                      isTeacher: true,
                    ),
                  ),
                );
              }
            },
            child: StudentItem(
              student: mList[position],
            ),
          );
        },
      ),
    );
  }
}
エジャブ

ステートレスウィジェットのプロパティは不変であることが意図されています

class StudentsList extends StatelessWidget {
  // final means, flutter will not change value in future
  final List<Child> mList; 
  StudentsList({this.mList});

どうして ?

Flutter、StatelessWidgetにビジネスロジックが存在ないことを想定しているためです。学生リストに新しい学生を追加する必要がある場合、それはビジネスロジックと見なされます。学生リストの一部の学生を削除する必要がある場合、それはビジネスロジックと見なされます。

したがって、ステートレスウィジェットを使用することにより、Flutterは、画面上での表示方法、幅、制約などにのみ焦点を当てます。

そのため、のfinalクラスプロパティの前に構文が見つかりましStatelessWidget

私たちの大学生活に似ています。私たちの学年は、最終報告でマークすることを、私たちは大学を卒業した後も変わりません。最終報告書にあると言われているように、それは最終でなければなりません

ステートフルウィジェットのプロパティは変更可能

どうして ?flutterは、ビジネスロジックがStatefulWidgetに存在することを期待しているためです。

行われる変更

だから私はこれからStudentsListウィジェットを変更することをお勧めします:

class StudentsList extends StatelessWidget {
  final List<Child> mList; // this is the issue
  StudentsList({this.mList});

これに:

class StudentsList extends StatefulWidget {
  @override
  _StudentsListState createState() => _StudentsListState();
}

class _StudentsListState extends State<StudentsList> {
  // final List<Child> mList; // Do not mark this as final

  List<Child> mList;

  ...

}

作業リポジトリ

問題に密接に関連している作業リポジトリを探すことができます。Github

デモ

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

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

編集
0

コメントを追加

0

関連記事

DefaultWorkforceTimesheetServiceは変更不可能なリストを返します。

サポートされていない操作:書き込み可能なpythonではありません

Javaの変更不可能なリスト

Javaでのタプル(異種エレメントの変更不可能な順序付きリスト)サポート

Java:変更不可能なリストをソートする

単純なUPDATEクエリでは「DML操作はサポートされていません」

Javaの変更不可能なリストのタイプは何ですか

Hibernateにマップされたセットを変更不可能なセットとしてロードするにはどうすればよいですか?

OkHttp:単純なGETリクエスト:response.body()。string()は、json内の読み取り不可能なエスケープされたユニコードシンボルを返しますgsonに変換できません

変更不可能なリストの複製/コピー

再レンダリングは不可能ではありませんが、ドキュメントには、shouldComponentUpdateは必要ないとされています。

サイズ変更可能な長さのhdf5のロードは、サイズ変更不可能なものと比較して非常に遅いです

サポートされていない操作:参照を解析できません

Dartでは、 `List.unmodizable`は変更不可能なビューを作成しますか、それともまったく新しい独立したリストを作成しますか?

currentValueSubjectを変更不可能なオブザーバブルにキャストするにはどうすればよいですか?

dartでのオブジェクトの解析(サポートされていない操作:固定長リストに追加できません)

反復不可能なboolオブジェクトを解凍できません(auth> Userモジュールに登録されているユーザーの結果をフィルタリングしようとした場合)

空白のプロジェクトにウィザードを追加する:「操作を完了できませんでした。そのようなインターフェイスはサポートされていません」

Git:コミットされていない変更のためにリベースできません

Javaで変更不可能なリストを元に戻す方法

E:\にアクセスできません。リクエストはサポートされていません

Windowsで休止状態を無効にできない:リクエストはサポートされていません

変更不可能なリストのイテレータの実装

efibootmgrが読み取り不可能な変数boot0000をスキップしますブートオーダーが設定されていません

RODBCは使用できなくなりましたサポートされていませんRクランリストにありません

constリストと変更不可能なリストの違いは何ですか?

ゲッター使用時に変更不可能なリストを返す

null不可能なフィールド「agent」をデフォルトなしでリードするように追加しようとしています。それはできません(データベースには既存の行にデータを入力するための何かが必要です

Flutter(Dart)は変更不可能なリストから削除できません

TOP 一覧

  1. 1

    Python / SciPyのピーク検出アルゴリズム

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  4. 4

    androidsoongビルドシステムによるネイティブコードカバレッジ

  5. 5

    ZScalerと証明書の問題により、Dockerを使用できません

  6. 6

    Reactでclsxを使用する方法

  7. 7

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  8. 8

    二次導関数を数値計算するときの大きな誤差

  9. 9

    Ansibleで複数行のシェルスクリプトを実行する方法

  10. 10

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  11. 11

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  12. 12

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  13. 13

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  14. 14

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  15. 15

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

  16. 16

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    Rパッケージ「AppliedPredictiveModeling」のインストール中にエラーが発生しました

  20. 20

    画像変更コードを実行してもボタンの画像が変更されない

  21. 21

    好き/愛の関係のためのデータベース設計

ホットタグ

アーカイブ