diff --git a/components/vc-slider/demo/handle.jsx b/components/vc-slider/demo/handle.jsx index 7c4eedae2..fd812ed61 100644 --- a/components/vc-slider/demo/handle.jsx +++ b/components/vc-slider/demo/handle.jsx @@ -13,12 +13,15 @@ export default { }, render () { const handle = (props) => { - const { value, dragging, index, ...restProps } = props + const { value, dragging, index, refStr, ...restProps } = props const handleProps = { props: { ...restProps, value, }, + attrs: { + refStr, + }, key: index, } return ( diff --git a/components/vc-slider/src/Handle.jsx b/components/vc-slider/src/Handle.jsx index ede4eadc1..4d8d7c800 100644 --- a/components/vc-slider/src/Handle.jsx +++ b/components/vc-slider/src/Handle.jsx @@ -53,10 +53,10 @@ export default { this.focus() }, focus () { - this.$refs[this.refStr].focus() + this.$refs.handle.focus() }, blur () { - this.$refs[this.refStr].blur() + this.$refs.handle.blur() }, }, render () { @@ -87,6 +87,7 @@ export default { attrs: { role: 'slider', tabIndex: disabled ? null : (tabIndex || 0), + refStr, ...ariaProps, ...restProps, }, @@ -96,7 +97,7 @@ export default { blur: this.handleBlur, keydown: this.handleKeyDown, }, - ref: refStr, + ref: 'handle', } return (
@@ -90,10 +93,12 @@ export default function createSlider (Component) { }, methods: { setHandleRefs () { - const refs = this.$refs - Object.keys(refs).map((item) => { - if (item.indexOf('handlesRefs') > -1) { - const handleArr = item.split('handlesRefs') + const refs = this.$refs.handleRef + const children = Array.prototype.slice.call(refs.children) + children.map((item) => { + const refStr = item.getAttribute('refStr') + if (refStr.indexOf('handleRef') > -1) { + const handleArr = refStr.split('handleRef') this.handlesRefs[handleArr[1]] = item } }) @@ -305,7 +310,9 @@ export default function createSlider (Component) { dotStyle={dotStyle} activeDotStyle={activeDotStyle} /> - {handles} +
+ {handles} +
diff --git a/components/vc-tooltip/Tooltip.jsx b/components/vc-tooltip/Tooltip.jsx index d955dfb32..3b08dcf20 100644 --- a/components/vc-tooltip/Tooltip.jsx +++ b/components/vc-tooltip/Tooltip.jsx @@ -2,7 +2,7 @@ import PropTypes from '../_util/vue-types' import Trigger from '../trigger' import { placements } from './placements' -import { hasProp, getComponentFromProp } from '../_util/props-util' +import { hasProp, getComponentFromProp, getOptionProps } from '../_util/props-util' function noop () {} export default { props: { @@ -57,14 +57,13 @@ export default { destroyTooltipOnHide, defaultVisible, getTooltipContainer, ...restProps - } = this.$props + } = getOptionProps(this) const extraProps = { ...restProps } if (hasProp(this, 'visible')) { extraProps.popupVisible = this.$props.visible } const triggerProps = { props: { - ...extraProps, popupClassName: overlayClassName, prefixCls: prefixCls, action: trigger, @@ -80,6 +79,7 @@ export default { mouseLeaveDelay: mouseLeaveDelay, popupStyle: overlayStyle, mouseEnterDelay: mouseEnterDelay, + ...extraProps, }, on: { popupVisibleChange: this.$listeners.visibleChange || noop,