Skip to content

Commit

Permalink
Merge 997b83b into 74bf596
Browse files Browse the repository at this point in the history
  • Loading branch information
yesmeck committed Sep 6, 2017
2 parents 74bf596 + 997b83b commit 9a7e082
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 5 deletions.
11 changes: 8 additions & 3 deletions src/Cascader.jsx
Expand Up @@ -77,7 +77,7 @@ class Cascader extends Component {
}
}
getPopupDOMNode() {
return this.refs.trigger.getPopupDomNode();
return this.trigger.getPopupDomNode();
}
getCurrentLevelOptions() {
const { options } = this.props;
Expand Down Expand Up @@ -117,7 +117,7 @@ class Cascader extends Component {
e.preventDefault();
}
// Keep focused state for keyboard support
const triggerNode = this.refs.trigger.getRootDomNode();
const triggerNode = this.trigger.getRootDomNode();
if (triggerNode && triggerNode.focus) {
triggerNode.focus();
}
Expand Down Expand Up @@ -218,6 +218,11 @@ class Cascader extends Component {
this.props.onKeyDown(e);
}
}

saveTrigger = (node) => {
this.trigger = node;
}

render() {
const {
prefixCls, transitionName, popupClassName, options, disabled,
Expand All @@ -241,7 +246,7 @@ class Cascader extends Component {
}
return (
<Trigger
ref="trigger"
ref={this.saveTrigger}
{...restProps}
options={options}
disabled={disabled}
Expand Down
14 changes: 12 additions & 2 deletions src/Menus.jsx
Expand Up @@ -4,6 +4,12 @@ import arrayTreeFilter from 'array-tree-filter';
import { findDOMNode } from 'react-dom';

class Menus extends React.Component {
constructor(props) {
super(props);

this.menuItems = {};
}

componentDidMount() {
this.scrollActiveItemToView();
}
Expand Down Expand Up @@ -33,7 +39,7 @@ class Menus extends React.Component {
}
if (this.isActiveOption(option, menuIndex)) {
menuItemCls += ` ${prefixCls}-menu-item-active`;
expandProps.ref = `activeItem${menuIndex}`;
expandProps.ref = this.saveMenuItem(menuIndex);
}
if (option.disabled) {
menuItemCls += ` ${prefixCls}-menu-item-disabled`;
Expand Down Expand Up @@ -91,7 +97,7 @@ class Menus extends React.Component {
// scroll into view
const optionsLength = this.getShowOptions().length;
for (let i = 0; i < optionsLength; i++) {
const itemComponent = this.refs[`activeItem${i}`];
const itemComponent = this.menuItems[i];
if (itemComponent) {
const target = findDOMNode(itemComponent);
target.parentNode.scrollTop = target.offsetTop;
Expand All @@ -104,6 +110,10 @@ class Menus extends React.Component {
return activeValue[menuIndex] === option.value;
}

saveMenuItem = (index) => (node) => {
this.menuItems[index] = node;
}

render() {
const { prefixCls, dropdownMenuColumnStyle } = this.props;
return (
Expand Down

0 comments on commit 9a7e082

Please sign in to comment.