-
diff --git a/components/menu/demo/inline-collapsed.vue b/components/menu/demo/inline-collapsed.vue
index 51cb7650b..23e1c2608 100644
--- a/components/menu/demo/inline-collapsed.vue
+++ b/components/menu/demo/inline-collapsed.vue
@@ -9,6 +9,10 @@
+
diff --git a/components/menu/src/MenuItem.vue b/components/menu/src/MenuItem.vue
index 87c246fc9..84cbe1b49 100644
--- a/components/menu/src/MenuItem.vue
+++ b/components/menu/src/MenuItem.vue
@@ -104,7 +104,7 @@ const MenuItem = {
},
isSelected () {
- return this.$props.selectedKeys.indexOf(this.$props.eventKey) !== -1
+ return this.$props.selectedKeys && this.$props.selectedKeys.indexOf(this.$props.eventKey) !== -1
},
},
diff --git a/components/menu/src/SubMenu.vue b/components/menu/src/SubMenu.vue
index 5a571475c..95d683bc0 100644
--- a/components/menu/src/SubMenu.vue
+++ b/components/menu/src/SubMenu.vue
@@ -423,7 +423,7 @@ export default {
- {getComponentFromProp(this, h, 'title')}
+ {getComponentFromProp(this, 'title')}
)
diff --git a/components/popconfirm/index.vue b/components/popconfirm/index.vue
index a7286448a..9f43230ee 100644
--- a/components/popconfirm/index.vue
+++ b/components/popconfirm/index.vue
@@ -89,15 +89,15 @@ export default {
- {getComponentFromProp(this, h, 'title')}
+ {getComponentFromProp(this, 'title')}
diff --git a/components/popover/index.vue b/components/popover/index.vue
index 68d46d4b7..16407335f 100644
--- a/components/popover/index.vue
+++ b/components/popover/index.vue
@@ -44,11 +44,11 @@ export default {
{(title || $slots.title) &&
- {getComponentFromProp(this, h, 'title')}
+ {getComponentFromProp(this, 'title')}
}
- {getComponentFromProp(this, h, 'content')}
+ {getComponentFromProp(this, 'content')}
diff --git a/components/tooltip/src/Tooltip.vue b/components/tooltip/src/Tooltip.vue
index 67577d786..50ac7513b 100644
--- a/components/tooltip/src/Tooltip.vue
+++ b/components/tooltip/src/Tooltip.vue
@@ -2,7 +2,7 @@
import PropTypes from '../../_util/vue-types'
import Trigger from '../../trigger'
import { placements } from './placements'
-import hasProp from '../../_util/props-util'
+import { hasProp, getComponentFromProp } from '../../_util/props-util'
function noop () {}
export default {
props: {
@@ -31,15 +31,13 @@ export default {
},
methods: {
getPopupElement (h) {
- const { arrowContent, overlay, prefixCls, tipId } = this.$props
+ const { prefixCls, tipId } = this.$props
return ([
- {this.$slots.arrowContent}
- {typeof arrowContent === 'function' ? arrowContent(h) : arrowContent}
+ {getComponentFromProp(this, 'arrowContent')}
,
- {typeof overlay === 'function' ? overlay(h) : overlay}
- {this.$slots.overlay}
+ {getComponentFromProp(this, 'overlay')}
,
])
},
diff --git a/components/tooltip/tooltip.vue b/components/tooltip/tooltip.vue
index f6431a3bc..f94ea12b5 100644
--- a/components/tooltip/tooltip.vue
+++ b/components/tooltip/tooltip.vue
@@ -3,7 +3,7 @@ import { cloneElement, isValidElement, getClass, getStyle } from '../_util/vnode
import RcTooltip from './src/tooltip'
import getPlacements from './placements'
import PropTypes from '../_util/vue-types'
-import hasProp from '../_util/props-util'
+import { hasProp, getComponentFromProp } from '../_util/props-util'
import abstractTooltipProps from './abstractTooltipProps'
const splitObject = (obj, keys) => {
@@ -147,7 +147,7 @@ export default {
render (h) {
const { $props, $data, $slots } = this
- const { title, prefixCls, openClassName, getPopupContainer, getTooltipContainer } = $props
+ const { prefixCls, openClassName, getPopupContainer, getTooltipContainer } = $props
const children = ($slots.default || []).filter(c => c.tag || c.text.trim() !== '')[0]
let sVisible = $data.sVisible
// Hide tooltip when there is no title
@@ -177,8 +177,7 @@ export default {
return (
- {typeof title === 'function' ? title(h) : title}
- {$slots.title}
+ {getComponentFromProp(this, 'title')}
{sVisible ? cloneElement(child, { class: childCls }) : child}
diff --git a/components/trigger/index.vue b/components/trigger/index.vue
index 3f1b20730..4994983a0 100644
--- a/components/trigger/index.vue
+++ b/components/trigger/index.vue
@@ -231,7 +231,10 @@ export default {
}
this.preClickTime = 0
this.preTouchTime = 0
- event.preventDefault()
+ event.preventDefault && event.preventDefault()
+ if (event.domEvent) {
+ event.domEvent.preventDefault()
+ }
const nextVisible = !this.$data.sPopupVisible
if (this.isClickToHide() && !nextVisible || nextVisible && this.isClickToShow()) {
this.setPopupVisible(!this.$data.sPopupVisible)
@@ -507,7 +510,7 @@ export default {
this._component = null
}
newChildProps.addChildren = this._component
- const trigger = cloneElement(child, newChildProps)
+ const trigger = cloneElement(child, newChildProps, true)
return trigger
},
}