diff --git a/antdv-demo b/antdv-demo
index a69e38301..48d6f869a 160000
--- a/antdv-demo
+++ b/antdv-demo
@@ -1 +1 @@
-Subproject commit a69e38301cd2c54ecf47678ed4d1aa147eef2d7e
+Subproject commit 48d6f869a283826b5ec7bc9a75ea76142d43186c
diff --git a/components/tree/Tree.jsx b/components/tree/Tree.jsx
index 5292eef38..7649990b1 100644
--- a/components/tree/Tree.jsx
+++ b/components/tree/Tree.jsx
@@ -162,13 +162,9 @@ export default {
         const { on = {}, slots = {}, scopedSlots = {}, class: cls, style, ...restProps } = item;
         const treeNodeProps = {
           ...restProps,
-          icon:
-            ($scopedSlots[scopedSlots.icon] && $scopedSlots[scopedSlots.icon](item)) ||
-            $slots[slots.icon] ||
-            restProps.icon,
+          icon: $scopedSlots[scopedSlots.icon] || $slots[slots.icon] || restProps.icon,
           switcherIcon:
-            ($scopedSlots[scopedSlots.switcherIcon] &&
-              $scopedSlots[scopedSlots.switcherIcon](item)) ||
+            $scopedSlots[scopedSlots.switcherIcon] ||
             $slots[slots.switcherIcon] ||
             restProps.switcherIcon,
           title:
diff --git a/components/vc-tree/src/TreeNode.jsx b/components/vc-tree/src/TreeNode.jsx
index 60ad2aac4..fab9b9846 100644
--- a/components/vc-tree/src/TreeNode.jsx
+++ b/components/vc-tree/src/TreeNode.jsx
@@ -416,7 +416,7 @@ const TreeNode = {
     // Icon + Title
     renderSelector(h) {
       const { selected, loading, dragNodeHighlight } = this;
-      const icon = getComponentFromProp(this, 'icon');
+      const icon = getComponentFromProp(this, 'icon', {}, false);
       const {
         vcTree: { prefixCls, showIcon, icon: treeIcon, draggable, loadData },
       } = this;