回答編集履歴

2

説明が分かりにくいと思ったので文章を修正

2020/09/02 12:57

投稿

nskhei
nskhei

スコア704

test CHANGED
@@ -48,7 +48,11 @@
48
48
 
49
49
  **追記(09/02/21:00): チェックが外れない問題の修正方法**
50
50
 
51
+ 配列から削除するのに`remove`を使うと、`DocumentSnapshot`の場合、同じインスタンスかどうかで判定されてしまいます。
52
+
51
- `DocumentSnapshot`クラスは同じドキュメントを指していても、インスタンスが違うと別物として扱れてしまいます。`removeWhere`を使って,`id`比較して同じものを削除するようにしてみてください。
53
+ りに`removeWhere`を使って`id`比較して同じものを削除するようにしてみてください。
54
+
55
+
52
56
 
53
57
  ```dart
54
58
 

1

チェックが外れない問題の修正方法を追記

2020/09/02 12:56

投稿

nskhei
nskhei

スコア704

test CHANGED
@@ -41,3 +41,33 @@
41
41
  }
42
42
 
43
43
  ```
44
+
45
+
46
+
47
+
48
+
49
+ **追記(09/02/21:00): チェックが外れない問題の修正方法**
50
+
51
+ `DocumentSnapshot`クラスは同じドキュメントを指していても、インスタンスが違うと別物として扱われてしまいます。`removeWhere`を使って,`id`で比較して同じものを削除するようにしてみてください。
52
+
53
+ ```dart
54
+
55
+ onSelectedRow(bool selected, DocumentSnapshot document) async {
56
+
57
+ setState(() {
58
+
59
+ if (selected) {
60
+
61
+ selectedRecords.add(document);
62
+
63
+ } else {
64
+
65
+ selectedRecords.removeWhere((record) => record.id == document.id);
66
+
67
+ }
68
+
69
+ });
70
+
71
+ }
72
+
73
+ ```