Browse Source

解决在某些内核版本较低的浏览器上会出现的Object.assign is not a function错误

RaoMeng 6 years ago
parent
commit
1b2d3af3d4
1 changed files with 31 additions and 0 deletions
  1. 31 0
      frontend/wechat-web/src/index.js

+ 31 - 0
frontend/wechat-web/src/index.js

@@ -15,6 +15,37 @@ import 'moment/locale/zh-cn';
 
 moment.locale('zh-cn');
 
+//解决在某些内核版本较低的浏览器上会出现的Object.assign is not a function错误
+if (typeof Object.assign != 'function') {
+    // Must be writable: true, enumerable: false, configurable: true
+    Object.defineProperty(Object, "assign", {
+        value: function assign(target, varArgs) { // .length of function is 2
+            'use strict';
+            if (target == null) { // TypeError if undefined or null
+                throw new TypeError('Cannot convert undefined or null to object');
+            }
+
+            var to = Object(target);
+
+            for (var index = 1; index < arguments.length; index++) {
+                var nextSource = arguments[index];
+
+                if (nextSource != null) { // Skip over if undefined or null
+                    for (var nextKey in nextSource) {
+                        // Avoid bugs when hasOwnProperty is shadowed
+                        if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
+                            to[nextKey] = nextSource[nextKey];
+                        }
+                    }
+                }
+            }
+            return to;
+        },
+        writable: true,
+        configurable: true
+    });
+}
+
 ReactDOM.render(<LocaleProvider locale={zh_CN}>
         <Provider store={store}>
             <PersistGate loading={null} persistor={persistor}>