Skip to content

Radio 单选框

介绍

在一组选项中进行单选,通常与 TnRadioGroup 配合使用。支持自定义颜色、边框样式及禁用状态。

引入

typescript
import { TnRadio, TnRadioGroup } from "@tuniao/tn-ui";

代码演示

基础用法

通过 TnRadioGroup 包裹 TnRadio,使用 modelValue 绑定当前选中值。每个 TnRadio 通过 label 属性指定对应值。

基础用法

点我查看代码
typescript
@Local radioValue: string = "选项2";

TnRadioGroup({
  group: "fruit",
  modelValue: this.radioValue,
  onChange: (value: TnRadioValueType) => {
    this.radioValue = value as string;
  },
}) {
  TnRadio({ group: "fruit", label: "选项1" }) {
    Text("选项1")
  }
  TnRadio({ group: "fruit", label: "选项2" }) {
    Text("选项2")
  }
  TnRadio({ group: "fruit", label: "选项3" }) {
    Text("选项3")
  }
}

自定义颜色

通过 activeColor 属性自定义选中时的颜色,可在 TnRadioGroup 上统一设置,也可在单个 TnRadio 上单独设置。

自定义颜色

点我查看代码
typescript
@Local radioValue: string = "apple";

// 在 Group 上统一设置
TnRadioGroup({
  group: "fruit",
  modelValue: this.radioValue,
  activeColor: "success",
  onChange: (value: TnRadioValueType) => {
    this.radioValue = value as string;
  },
}) {
  TnRadio({ group: "fruit", label: "apple" }) {
    Text("苹果")
  }
  TnRadio({ group: "fruit", label: "banana" }) {
    Text("香蕉")
  }
  // 在单个 Radio 上单独设置
  TnRadio({ group: "fruit", label: "orange", activeColor: "danger" }) {
    Text("橘子")
  }
}

边框样式

通过 showBorder 属性开启边框样式,选中时边框高亮显示。

边框样式

点我查看代码
typescript
@Local radioValue: string = "2";

TnRadioGroup({
  group: "fruit",
  modelValue: this.radioValue,
  wrap: true,
  onChange: (value: TnRadioValueType) => {
    this.radioValue = value as string;
  },
}) {
  TnRadio({ group: "fruit", label: "1", showBorder: true }) {
    Text("边框选项1");
  };
  TnRadio({ group: "fruit", label: "2", showBorder: true }) {
    Text("边框选项2");
  };
  TnRadio({ group: "fruit", label: "3", showBorder: true }) {
    Text("边框选项3");
  };
}

禁用状态

通过 disabled 属性禁用单选框。可在 TnRadioGroup 上统一设置,也可在单个 TnRadio 上单独设置。通过 labelDisabled 可以单独禁用文字的点击切换功能。

禁用状态

点我查看代码
typescript
@Local radioValue: string = "apple";

// 全部禁用
TnRadioGroup({
  group: "fruit1",
  modelValue: this.radioValue,
  disabled: true,
}) {
  TnRadio({ group: "fruit1", label: "apple" }) {
    Text("苹果")
  }
  TnRadio({ group: "fruit1", label: "banana" }) {
    Text("香蕉")
  }
}

// 单个禁用
TnRadioGroup({
  group: "fruit2",
  modelValue: this.radioValue,
  onChange: (value: TnRadioValueType) => {
    this.radioValue = value as string;
  },
}) {
  TnRadio({ group: "fruit2", label: "apple" }) {
    Text("苹果")
  }
  TnRadio({ group: "fruit2", label: "banana", disabled: true }) {
    Text("香蕉(禁用)")
  }
}

API

TnRadioGroup Props

参数说明类型默认值
group单选框组标识string-
modelValue当前选中值TnRadioValueType-
disabled是否禁用整组booleanfalse
wrap是否水平排列并换行booleanfalse
activeColor选中时的颜色string-
groupSize单选框组统一大小number-

TnRadio Props

参数说明类型默认值
group所属单选框组标识string-
label单选框对应的值TnRadioValueType-
disabled是否禁用booleanfalse
labelDisabled是否禁用文字点击切换booleanfalse
activeColor选中时的颜色string-
radioSize单选框大小number-
showBorder是否显示边框booleanfalse

TnRadioGroup Events

事件名说明回调参数
onChange选中值变化时触发(value: TnRadioValueType) => void

TnRadio Slots

名称说明
defaultBuilder自定义单选框标签内容,通过尾随闭包传入

TnRadio Events

事件名说明回调参数
onChange选中状态变化时触发(value: TnRadioValueType) => void

类型定义

typescript
type TnRadioValueType = string | number;