import { Radio, RadioGroup, Space, View, Text, Button } from 'taro-uno-ui';
import { useState } from 'react';
const RadioExample = () => {
const [checked, setChecked] = useState(false);
const [value, setValue] = useState('option1');
const [complexValue, setComplexValue] = useState('1');
const complexOptions = [
{ label: '选项1', value: '1' },
{ label: '选项2', value: '2' },
{ label: '选项3', value: '3' },
{ label: '选项4', value: '4' },
{ label: '选项5', value: '5' }
];
return (
<View>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block' }}>基础单选框</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px' }}>
<Radio>基础选项</Radio>
<Radio defaultChecked>默认选中</Radio>
</Space>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block', marginTop: '20px' }}>受控模式</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px' }}>
<Space>
<Radio
checked={checked}
onChange={(e) => setChecked(e.detail.checked)}
>受控选项</Radio>
<Text>{checked ? '已选中' : '未选中'}</Text>
</Space>
<Button
type="primary"
onClick={() => setChecked(!checked)}
>
{checked ? '取消选中' : '选中'}
</Button>
</Space>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block', marginTop: '20px' }}>禁用状态</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px' }}>
<Radio disabled>禁用选项</Radio>
<Radio disabled checked>禁用已选中</Radio>
</Space>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block', marginTop: '20px' }}>不同颜色</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px' }}>
<Radio color="primary">主要颜色</Radio>
<Radio color="success">成功颜色</Radio>
<Radio color="warning">警告颜色</Radio>
<Radio color="error">错误颜色</Radio>
<Radio color="#ff6b6b">自定义颜色</Radio>
</Space>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block', marginTop: '20px' }}>单选框组</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px' }}>
<Text>垂直排列(默认):</Text>
<RadioGroup
value={value}
onChange={(e) => setValue(e.detail.value)}
>
<Radio value="option1">选项1</Radio>
<Radio value="option2">选项2</Radio>
<Radio value="option3">选项3</Radio>
<Radio value="option4" disabled>选项4(禁用)</Radio>
</RadioGroup>
<Text style={{ marginTop: '12px' }}>水平排列:</Text>
<RadioGroup
value={value}
onChange={(e) => setValue(e.detail.value)}
direction="horizontal"
>
<Radio value="option1">选项1</Radio>
<Radio value="option2">选项2</Radio>
<Radio value="option3">选项3</Radio>
</RadioGroup>
<Text style={{ marginTop: '12px' }}>选中项:{value}</Text>
</Space>
<Text style={{ fontSize: '20px', fontWeight: 'bold', marginBottom: '12px', display: 'block', marginTop: '20px' }}>复杂数据</Text>
<Space direction="vertical" size="large" style={{ marginBottom: '20px' }}>
<RadioGroup
value={complexValue}
onChange={(e) => setComplexValue(e.detail.value)}
>
{complexOptions.map((option) => (
<Radio key={option.value} value={option.value}>
{option.label}
</Radio>
))}
</RadioGroup>
<Text>选中项:{complexOptions.find(opt => opt.value === complexValue)?.label}</Text>