lm-form
Version:
* 作者:liuduan * 邮箱:liuduan.05.05@163.com * 版本:**`1.0.2`**
54 lines (49 loc) • 1.72 kB
JavaScript
import React from 'react';
import PropTypes from 'prop-types';
import Checkbox from './checkbox';
const Checkboxgroup = props => {
const { data, checked, name, disabled, ...others } = props;
const renderCheckbox = (data) => {
let res;
if ('checked' in props) {
res = data.map((i, index) =>
<Checkbox
key={index}
label={i.label}
value={i.value}
name={i.name || name}
disabled={'disabled' in i ? i.disabled : disabled}
checked={checked.indexOf(`${i.value}`) !== -1}
{...others} />)
} else {
res = data.map((i, index) =>
<Checkbox
key={index}
label={i.label}
value={i.value}
disabled={'disabled' in i ? i.disabled : disabled}
name={i.name || name}
{...others} />)
}
return res;
}
return (
<div style={{ display: props.inline === false ? 'block' : 'flex', alignItems: 'center', flexWrap: 'wrap' }}>
{data.length
? renderCheckbox(data)
: null}
</div>
);
};
Checkboxgroup.propTypes = {
data: PropTypes.array.isRequired, // 数据
checked: PropTypes.array, // 多选中值数组
disabled: PropTypes.bool, // checkbox 禁用
name: PropTypes.string, // checkbox name,如果name不同,可用过data属性传入name
};
Checkboxgroup.defaultProps = {
data: [],
disabled: false,
name: ''
};
export default Checkboxgroup;