react radio

该文章展示了一个React组件的实现,使用antd库中的Form、Input、Select、Radio和Space等元素。代码中定义了一个Radio.Group,动态渲染optionsData数组,并在选中值改变时更新state。特别地,当选择4时,会显示一个Input字段。
摘要由CSDN通过智能技术生成
import React, { Component } from 'react'

import { Form, Input, Select, Button, Radio, Space } from 'antd';
import 'antd/dist/reset.css';

const { Option } = Select;

const layout = {
    labelCol: { span: 8 },
    wrapperCol: { span: 16 },
};

const tailLayout = {
    wrapperCol: { offset: 8, span: 16 },
};

const optionsData = [{ name: 1, value: '1' }, { name: 2, value: '2' }, { name: 3, value: '3' }, { name: 4, value: '4' }]

// const onChange = (e) => {
//     console.log('radio checked', e.target.value);
//     // setValue(e.target.value);
//     this.setState({ value: e.target.value })
// };



export default class App extends Component {
    constructor(props) {
        super(props);

        this.state = {
            optionsData: [],
            value: '1'
        }
    }

    onChange = (e) => {
        console.log('radio checked', e.target.value);
        this.setState({ value: e.target.value })
    };



    render() {
        return (
            <div>
                <Radio.Group onChange={this.onChange} value={this.state.value}>
                    <Space direction="vertical">
                        {
                            optionsData.map(item =>
                                item.value === '4' ? <Radio value={4}>
                                    More...
              {this.state.value === 4 ? (
                                        <Input
                                            style={{
                                                width: 100,
                                                marginLeft: 10,
                                            }}
                                        />
                                    ) : null}
                                </Radio> : <Radio value={item.value}>{item.name}</Radio>
                            )
                        }
                    </Space>
                </Radio.Group>
            </div>
        )
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值