現在、以下のようなスタッフシフト表を作ろうと思っています。
今は全てバツ印がついてますが、APIの出勤可能日を照らし合わせて、バツの代わりに○を付けていきたいです。
そのデータなのですが、今は仮で以下のようなデータ(直がき)を作っている状態です。
バックエンドについて全くの無知なのでこの書き方が正しいかわからないのですが、
availableに出勤可能日だけ格納しています。
_stuffItems = [ { 'name': '山本太郎', 'age': '22' + '歳', 'available': [ '2020-10-07 22:57:34.192023', '2020-10-10 22:57:34.192023', '2020-10-11 22:57:34.192023' ] } ];
そしてフロントコードが以下になります。
static DateTime _nowDate = DateTime.now(); var _weekName = [ '月', '火', '水', '木', '金', '土', '日', '月', '火', '水', '木', '金', '土', '日', ]; List<Widget> weekList() { List<Widget> weekList = List(); for (int i = 0; i < 7; i++) { final indexDay = _nowDate.add(Duration(days: i)); int _nowWeekday = indexDay.weekday - 1; final indexWeek = _weekName[_nowWeekday]; print(_stuffItems['available'][0]); weekList.add(Expanded( flex: 1, child: Column( children: [ Text( "$indexWeek", textAlign: TextAlign.center, ), Text( "${indexDay.day}", textAlign: TextAlign.center, ), //ここでデータとindexDayを照らし合わせて分岐させたいです _stuffItems['available'].contains(indexDay) == true ? Container( width: 10.0, child: Text('○'), ) : Container( width: 10.0, child: Text('×'), ) ], ))); } return weekList; }
そしてここで出るエラーが以下のようなものです。
he method 'contains' was called on null.
Receiver: null
Tried calling: contains(Instance of 'DateTime')
コードの途中で
print(_stuffItems['available'][0]);
を実行してみているのですが、
予想は2020-10-07 22:57:34.192023が返ってくるかと思ってたのが
nullが帰ってきているので、データの書き方がおかしいのかな?と思っていますが、
どう書き直していいのか調べても分からず質問に至りました...
The method '[]' was called on null.
この場合の解決策を教えていただけると、幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/08 03:42