はじめに
The property can't be unconditionally accessed because the receiver can be 'null'
というエラーが出ると、私はいつも!
をつけていましたが、これでは少し安全性が不安なので、nullチェックを入れた方がいいと知りました。
エラーの出るコード
void setUserId(int index, String? value) {
if (value == null) return;
final userIds =
List<String>.from(state.appConfig.userIds);
!
で対処した場合
void setUserId(int index, String? value) {
if (value == null) return;
final userIds =
List<String>.from(state.appConfig!.userIds);// !でnullでないことを強制させる
nullチェックを用いる場合
void setUserId(int index, String? value) {
if (value == null) return;
final appConfig = state.appConfig; // 変数として確保する
if (appConfig == null) return; // nullならリターンさせる
final userIds = List<String>.from(appConfig.userIds);// エラーは起きない
}