onChange method

void onChange(
  1. T id
)

Implementation

void onChange(T id) {
  // 拷贝
  final List<T> newValue = [];
  if (value != null) newValue.addAll(value!);

  // 判断是否已经存在
  if (newValue.indexOf(id) >= 0) {
    newValue.remove(id);
  } else {
    newValue.add(id);
  }

  // 判断是否受控
  if (widget.value == null) {
    this.setState(() {
      value = newValue;
    });
  }

  if (widget.onChange is Function) widget.onChange!(newValue);
}