rc-radio源码

本文介绍了一个基于rc-checkbox的Radio.js单选按钮组件,详细解析了其属性配置及使用方式。Radio.js通过设置props.type='radio'来实现单选框的功能,并且可以设置默认选中状态和监听事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Radio.js:

1.  基于rc-checkbox组件,props.type属性赋值为radio,渲染input元素时使用(即该节点的type属性);props.prefixCls样式类前缀改变,基本样式不同。

2.  同rc-checkbox组件,只负责绘制Radio单选框样式,不负责绘制lable、text;因此调用时使用JSX语法书写<Radio>text</Radio>,Radio组件将不会渲染text文本(即组件内部没有按需绘制props.children的实现)。

3.  同rc-checkbox组件,props.checked属性用于设置不可控组件,用户点击单选框时将不触发任何动作,也不影响单选框的状态;props.defaultChecked属性用于设置初始值,用户点击单选框时将触发this.setState重绘组件,单选框选中与否的状态也随之改变。

'use strict';

// 浅拷贝
var _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) { 
        var source = arguments[i]; 
        for (var key in source) { 
            if (Object.prototype.hasOwnProperty.call(source, key)) { 
                target[key] = source[key]; 
            } 
        } 
    } 
    return target; 
};

var React = require('react');
var Checkbox = require('rc-checkbox');

/*var props={
    name,
    prefixCls,// 样式类前缀
    style,
    type,// input类型设置"radio"
    readOnly,
    disabled,
    className,
    defaultChecked,// defaultChecked、checked无差别,没法设置不可控组件
    checked,
    onFocus(e),// 获得焦点时触发执行函数
    onBlur(e),// 失去焦点时触发执行函数
    onChange(target,stopPropagation,preventDefault)// 多选框值改变时触发执行函数
};
<Radio {...props}/></Radio>*/
var Radio = React.createClass({
    displayName: 'Radio',

    getDefaultProps: function getDefaultProps() {
        return {
            prefixCls: 'rc-radio',
            type: 'radio'
        };
    },

    render: function render() {
        return React.createElement(Checkbox, _extends({}, this.props, { ref: 'checkbox' }));
    }
});

module.exports = Radio;

 

对外接口

'use strict';

module.exports = require('./Radio');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值