select method

List<T>? select(
  1. T? target, {
  2. bool isRadio = true,
})

target进行单选操作, 如果T不为Selectable则什么都不做, 直接透传

Implementation

List<T>? select(T? target, {bool isRadio = true}) {
  if (_subject.isClosed) {
    L.w('IO在close状态下请求发送数据');
    return null;
  }

  if (isEmpty(latest)) {
    L.w('当前IO数据为null, 略过选择操作');
    return null;
  }

  assert(latest is List<Selectable>);
  return forEach((T data) {
    if (data is Selectable) {
      if (isRadio) {
        data.isSelected = (data == target);
      } else {
        if (data == target) data.isSelected = true;
      }
    }
  });
}