diff --git a/package.json b/package.json index 6e55aa7c..d937a9aa 100644 --- a/package.json +++ b/package.json @@ -104,6 +104,7 @@ "raf": "^3.4.1", "rc-hammerjs": "~0.6.0", "rc-util": "^4.0.4", + "resize-observer-polyfill": "^1.5.1", "warning": "^3.0.0" } } diff --git a/src/ScrollableTabBarNode.js b/src/ScrollableTabBarNode.js index 7b88f3fb..429f0114 100755 --- a/src/ScrollableTabBarNode.js +++ b/src/ScrollableTabBarNode.js @@ -1,8 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; -import addEventListener from 'rc-util/lib/Dom/addEventListener'; import debounce from 'lodash/debounce'; +import ResizeObserver from 'resize-observer-polyfill'; import { setTransform, isTransform3dSupported } from './utils'; export default class ScrollableTabBarNode extends React.Component { @@ -22,7 +22,8 @@ export default class ScrollableTabBarNode extends React.Component { this.setNextPrev(); this.scrollToActiveTab(); }, 200); - this.resizeEvent = addEventListener(window, 'resize', this.debouncedResize); + this.resizeObserver = new ResizeObserver(this.debouncedResize); + this.resizeObserver.observe(this.props.getRef('container')); } componentDidUpdate(prevProps) { @@ -43,8 +44,8 @@ export default class ScrollableTabBarNode extends React.Component { } componentWillUnmount() { - if (this.resizeEvent) { - this.resizeEvent.remove(); + if (this.resizeObserver) { + this.resizeObserver.disconnect(); } if (this.debouncedResize && this.debouncedResize.cancel) { this.debouncedResize.cancel(); @@ -323,7 +324,6 @@ ScrollableTabBarNode.propTypes = { children: PropTypes.node, prevIcon: PropTypes.node, nextIcon: PropTypes.node, - activeKey: PropTypes.string, }; ScrollableTabBarNode.defaultProps = {