flutter 升级到声音空值安全,空值现在是不可接受的,不确定如何在编译其余代码时修复此更改

rn0zuynd  于 2023-01-18  发布在  Flutter
关注(0)|答案(1)|浏览(100)
E valueToEnum<E>(
  dynamic value,
  List<E> enumValues,
) =>
    enumValues.firstWhere(
      (E element) => describeEnum(element!) == '$value',
      orElse: () => null,
    );

我已经将?添加到顶行的E中,值也设置为“",但仍然没有运气。
!. added也会在调用此函数时引发错误

gwbalxhn

gwbalxhn1#

orElse取决于enumValues数据类型。
你能做到

E? valueToEnum<E>(
  dynamic value,
  List<E?> enumValues,
) =>
    enumValues.firstWhere(
      (E? element) => ....,
      orElse: () => null,
    );

我想我选择了try-catch而不是使其成为可空的list-datetype。

E? valueToEnum<E>(
  dynamic value,
  List<E> enumValues,
) {
  try {
    final foundValue = enumValues.firstWhere(
      (E? element) => describeEnum(element!) == '$value',
    );

    return foundValue;
  } catch (e) {}
}

相关问题