Skip to content

Commit 8a79fda

Browse files
committed
itemClick itemGroupClick参数传递原始数据对象
1 parent 4c574c1 commit 8a79fda

File tree

3 files changed

+20
-8
lines changed

3 files changed

+20
-8
lines changed

src/ListBox.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export default class ListBox extends React.Component {
6262
labelInValue: false,
6363
tabIndex: 0,
6464
items: [],
65-
emptyLabel: null,
65+
emptyLabel: 'Not Found',
6666
enableDownUpSelect: true,
6767
onFocus: noop,
6868
onBlur: noop,
@@ -367,14 +367,17 @@ export default class ListBox extends React.Component {
367367
onDeselect={this.onItemDeselect}
368368
onMouseEnter={onMouseEnter}
369369
onMouseLeave={onMouseLeave}
370+
item={item}
370371
>
371372
{renderMenuItem ? renderMenuItem(item[labelField], item) : item[labelField]}
372373
</ListItem>
373374
) : (
374375
<ListItemGroup
375376
prefixCls={`${itemPrefixCls}-group`}
376377
key={item[labelField]}
378+
value={item[valueField]}
377379
onClick={this.onItemGroupClick}
380+
item={item}
378381
label={renderMenuGroup ? renderMenuGroup(item[labelField], item) : item[labelField]}
379382
>
380383
{this.renderListItems(item[childrenField] || [], selectedMap)}
@@ -457,6 +460,10 @@ export default class ListBox extends React.Component {
457460
this._indexValueMap = {};
458461
this._activeIndex = null;
459462

463+
if (!items.length && !React.Children.count(children)) {
464+
return emptyLabel;
465+
}
466+
460467
const childs = items.length ?
461468
this.renderListItems(items, selectedMap) :
462469
this.renderListChild(children, selectedMap);

src/ListItem.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export default class ListItem extends React.Component {
1414
onClick: PropTypes.func,
1515
selected: PropTypes.bool,
1616
disabled: PropTypes.bool,
17+
item: PropTypes.object,
1718
}
1819

1920
static defaultProps = {
@@ -31,22 +32,22 @@ export default class ListItem extends React.Component {
3132
}
3233

3334
handleItemClick = (e) => {
34-
const { onSelect, onDeselect, onClick, selected, disabled, value, children } = this.props;
35+
const { onSelect, onDeselect, onClick, selected, disabled, value, children, item } = this.props;
3536
if (disabled) return;
3637

37-
const item = {
38+
const newItem = item || {
3839
value,
3940
label: children
4041
};
4142

4243
if (onClick) {
43-
onClick(item, e);
44+
onClick(newItem, e);
4445
}
4546

4647
if (!selected) {
47-
onSelect && onSelect(item, this.refs.item)
48+
onSelect && onSelect(newItem, this.refs.item)
4849
} else {
49-
onDeselect && onDeselect(item, this.refs.item)
50+
onDeselect && onDeselect(newItem, this.refs.item)
5051
}
5152
}
5253

src/ListItemGroup.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ export default class ItemGroup extends React.Component {
88
value: PropTypes.any,
99
children: PropTypes.node,
1010
prefixCls: PropTypes.string,
11+
onClick: PropTypes.func,
12+
item: PropTypes.object,
1113
}
1214

1315
static defaultProps = {
@@ -21,11 +23,13 @@ export default class ItemGroup extends React.Component {
2123
const {
2224
value,
2325
label,
24-
children
26+
children,
27+
onClick,
28+
item
2529
} = this.props;
2630

2731
if (onClick) {
28-
onClick({
32+
onClick(item || {
2933
value, label, children
3034
}, e);
3135
}

0 commit comments

Comments
 (0)