Skip to content

Radio

Rules

Basic Example

js
const rule = {
    type:"radio",
    title:"Free Shipping",
    field:"is_postage",
    value:"0",
    options:[
        {value:"0",label:"No Free Shipping",disabled:false},
        {value:"1",label:"Free Shipping",disabled:true},
    ],
}

Props Configuration Examples

Button Style

js
const rule = {
    type:"radio",
    title:"Product Status",
    field:"status",
    value:"1",
    options:[
        {value:"1",label:"On Sale"},
        {value:"2",label:"Off Sale"},
        {value:"3",label:"Pending Review"},
    ],
    props: {
        type: "button",
        size: "small",
    }
}

Vertical Arrangement

js
const rule = {
    type:"radio",
    title:"Delivery Method",
    field:"delivery",
    value:"1",
    options:[
        {value:"1",label:"Express Delivery"},
        {value:"2",label:"Store Pickup"},
        {value:"3",label:"Same City Delivery"},
    ],
    props: {
        direction: "vertical",
    }
}

Disabled Options

js
const rule = {
    type:"radio",
    title:"Payment Method",
    field:"payment",
    value:"1",
    options:[
        {value:"1",label:"Online Payment",disabled:false},
        {value:"2",label:"Cash on Delivery",disabled:true},
        {value:"3",label:"Balance Payment",disabled:false},
    ],
}

Events Examples

Handle Selection Changes

js
const rule = {
    type:"radio",
    title:"Delivery Method",
    field:"delivery",
    value:"1",
    options:[
        {value:"1",label:"Express Delivery"},
        {value:"2",label:"Store Pickup"},
        {value:"3",label:"Same City Delivery"},
    ],
    on: {
        change: (value) => {
            console.log('Selection value changed:', value);
        },
    },
}

Linkage Update After Selection

js
const rule = [
    {
        type:"radio",
        title:"Delivery Method",
        field:"delivery",
        value:"1",
        options:[
            {value:"1",label:"Express Delivery"},
            {value:"2",label:"Store Pickup"},
            {value:"3",label:"Same City Delivery"},
        ],
        inject: true,
        on: {
            change: ($inject, value) => {
                // Set freight by delivery method
                const freightMap = {
                    "1": 10,
                    "2": 0,
                    "3": 5,
                };
                $inject.api.setValue('freight', freightMap[value] || 0);
            },
        },
    },
    {
        type:"input-number",
        title:"Freight",
        field:"freight",
        props: {
            disabled: true,
        },
    },
]

Complete configuration items: arco-design_Radio

value: String | Number

Options

Field NameDescriptionField TypeRequiredDefault
valueParameter valueString,Numbertrue-
labelField aliasStringtrue-
disabledSet to disabled stateBooleanfalsefalse

Props

ParameterDescriptionTypeDefault
typeType of radio group'radio' | 'button''radio'
sizeSize of radio group'mini' | 'small' | 'medium' | 'large'-
directionDirection of radio group'horizontal' | 'vertical''horizontal'
disabledWhether disabledbooleanfalse

Events

Event NameDescriptionParameters
changeTriggered when value changesvalue: `(string

FormCreate is an open-source project released under the MIT License. Free for personal and commercial use.