easy3wui 1.5.49 → 1.5.50-beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -106,7 +106,7 @@ var Easy3wGridPage = function (_Component) {
106
106
  }
107
107
  var dataList = _this.props.dataList;
108
108
 
109
- var arrData = dataList && dataList.length ? JSON.parse(JSON.stringify(dataList)) : [];
109
+ var arrData = dataList && dataList.length ? _this.deepCopy(dataList) : [];
110
110
  _this.state = {
111
111
  // 数据
112
112
  arrData: arrData, // 列表
@@ -125,9 +125,10 @@ var Easy3wGridPage = function (_Component) {
125
125
  var _nextProps$dataList = nextProps.dataList,
126
126
  nextDataList = _nextProps$dataList === undefined ? [] : _nextProps$dataList;
127
127
 
128
- if (nextDataList.length !== dataList.length || JSON.stringify(nextDataList) !== JSON.stringify(dataList)) {
128
+ var isEqual = this.touchDeepEqual(nextDataList, dataList);
129
+ if (!isEqual) {
129
130
  this.setState({
130
- arrData: nextDataList.length ? JSON.parse(JSON.stringify(nextDataList)) : []
131
+ arrData: nextDataList.length ? this.deepCopy(dataList) : []
131
132
  });
132
133
  }
133
134
  if (nextProps.cleanFlag === '1') {
@@ -144,6 +145,8 @@ var Easy3wGridPage = function (_Component) {
144
145
 
145
146
  // 数组深度复制
146
147
 
148
+ // 数组深度比较
149
+
147
150
 
148
151
  Easy3wGridPage.prototype.render = function render() {
149
152
  var _this2 = this;
@@ -706,7 +709,7 @@ var _initialiseProps = function _initialiseProps() {
706
709
  break;
707
710
  }
708
711
  if (item.children) {
709
- item.children = recursion(item.children);
712
+ recursion(item.children);
710
713
  }
711
714
  }
712
715
  };
@@ -793,7 +796,7 @@ var _initialiseProps = function _initialiseProps() {
793
796
  item.minWidth = 5;
794
797
  }
795
798
  if (item.children) {
796
- item.children = recursionT(item.children);
799
+ recursionT(item.children);
797
800
  }
798
801
  };
799
802
 
@@ -849,7 +852,7 @@ var _initialiseProps = function _initialiseProps() {
849
852
  var copy = Array.isArray(obj) ? [] : {};
850
853
 
851
854
  for (var key in obj) {
852
- if (key === 'title' || key === 'filterDropdown') {
855
+ if (_react2['default'].isValidElement(obj[key])) {
853
856
  copy[key] = obj[key];
854
857
  } else if (key === 'children' && Array.isArray(obj[key]) || typeof obj[key] === 'object') {
855
858
  copy[key] = _this3.deepCopy(obj[key]);
@@ -860,6 +863,37 @@ var _initialiseProps = function _initialiseProps() {
860
863
 
861
864
  return copy;
862
865
  };
866
+
867
+ this.touchDeepEqual = function (arrOne, arrTwo) {
868
+ if (arrOne.length === 0 && arrTwo.length === 0) {
869
+ return true;
870
+ }
871
+ if (arrOne.length !== arrTwo.length) {
872
+ return false;
873
+ }
874
+ for (var i = 0; i < arrOne.length; i += 1) {
875
+ var objOneKeys = Object.keys(arrOne[i]);
876
+ var objTwoKeys = Object.keys(arrTwo[i]);
877
+ if (objOneKeys.length !== objTwoKeys.length) {
878
+ return false;
879
+ }
880
+ for (var key in arrOne[i]) {
881
+ if (_react2['default'].isValidElement(arrOne[i][key]) || _react2['default'].isValidElement(arrTwo[i][key])) {
882
+ // 是一个 React 元素
883
+ } else if (key === 'children' && Array.isArray(arrOne[i][key]) && Array.isArray(arrTwo[i][key])) {
884
+ var isEqual = _this3.touchDeepEqual(arrOne[i][key], arrTwo[i][key]);
885
+ if (isEqual) {
886
+ // 相等
887
+ } else {
888
+ return false;
889
+ }
890
+ } else if (arrOne[i][key] !== arrTwo[i][key]) {
891
+ return false;
892
+ }
893
+ }
894
+ }
895
+ return true;
896
+ };
863
897
  };
864
898
 
865
899
  exports['default'] = Easy3wGridPage;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easy3wui",
3
- "version": "1.5.49",
3
+ "version": "1.5.50-beta2",
4
4
  "description": "easy3wui components for react",
5
5
  "keywords": [
6
6
  "react",