diff --git a/lib/switch/index.js b/lib/switch/index.js
index 1d2317f9..b8336def 100644
--- a/lib/switch/index.js
+++ b/lib/switch/index.js
@@ -5,7 +5,10 @@ var component_1 = require("../common/component");
     field: true,
     classes: ['node-class'],
     props: {
-        checked: null,
+        checked: {
+            type: null,
+            observer: 'updateValue',
+        },
         loading: Boolean,
         disabled: Boolean,
         activeColor: String,
@@ -24,6 +27,14 @@ var component_1 = require("../common/component");
         },
     },
     methods: {
+        updateValue(checked) {
+            var _a = this.data, activeValue = _a.activeValue, inactiveValue = _a.inactiveValue;
+            var _checked = checked === activeValue;
+            var value = _checked ? activeValue : inactiveValue;
+            this.setData({
+                value
+            })
+        },
         onClick: function () {
             var _a = this.data, activeValue = _a.activeValue, inactiveValue = _a.inactiveValue, disabled = _a.disabled, loading = _a.loading;
             if (disabled || loading) {