回答編集履歴
2
説明が分かりにくいと思ったので文章を修正
test
CHANGED
@@ -48,7 +48,11 @@
|
|
48
48
|
|
49
49
|
**追記(09/02/21:00): チェックが外れない問題の修正方法**
|
50
50
|
|
51
|
+
配列から削除するのに`remove`を使うと、`DocumentSnapshot`の場合、同じインスタンスかどうかで判定されてしまいます。
|
52
|
+
|
51
|
-
|
53
|
+
代わりに`removeWhere`を使って`id`を比較して同じものを削除するようにしてみてください。
|
54
|
+
|
55
|
+
|
52
56
|
|
53
57
|
```dart
|
54
58
|
|
1
チェックが外れない問題の修正方法を追記
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
|
+
```
|