ztxkui 1.8.3 → 1.8.4

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.
@@ -24,7 +24,7 @@ var __rest = (this && this.__rest) || function (s, e) {
24
24
  * @author cyx
25
25
  * @description 增强下拉框功能
26
26
  */
27
- import React, { useCallback, useEffect, memo } from 'react';
27
+ import React, { useCallback, useEffect, memo, useRef } from 'react';
28
28
  import { Select } from 'antd';
29
29
  import { useFetchState } from 'ztxkutils/dist/hooks';
30
30
  import debounce from 'lodash/debounce';
@@ -75,6 +75,7 @@ function EnhanceSelect(_a) {
75
75
  // 下拉数据源
76
76
  var _f = useFetchState([]), selectList = _f[0], setSelectList = _f[1];
77
77
  var _g = useFetchState(false), loading = _g[0], setLoading = _g[1];
78
+ var fetchId = useRef(0); // 请求Id,每次请求都会加1
78
79
  // 如果selectList 发生改变,那么触发onCompleted事件
79
80
  useEffect(function () {
80
81
  if (Array.isArray(selectList) && onCompleted) {
@@ -83,9 +84,17 @@ function EnhanceSelect(_a) {
83
84
  }, [selectList, onCompleted]);
84
85
  // 获取数据,并设置数据
85
86
  var getDataHandle = useCallback(function (request, options, appointObj) {
87
+ setLoading(true);
88
+ // 利用闭包,存到当前请求的id
89
+ fetchId.current++;
90
+ var fetchIdClosure = fetchId.current;
86
91
  getData(request, options)
87
92
  .then(function (resData) {
88
93
  var _a;
94
+ if (fetchIdClosure < fetchId.current) {
95
+ return;
96
+ }
97
+ setLoading(false);
89
98
  var res = transformData ? transformData(resData) : resData;
90
99
  var result;
91
100
  if (Array.isArray(res.data)) {
@@ -101,9 +110,10 @@ function EnhanceSelect(_a) {
101
110
  }
102
111
  })
103
112
  .catch(function (err) {
113
+ setLoading(false);
104
114
  console.log(err);
105
115
  });
106
- }, [setSelectList, transformData]);
116
+ }, [setSelectList, setLoading, transformData]);
107
117
  // 远程搜索
108
118
  var getRemoteDataHandle = useCallback(function (value) {
109
119
  var _a;
@@ -114,6 +124,9 @@ function EnhanceSelect(_a) {
114
124
  }
115
125
  catch (err) { }
116
126
  setLoading(true);
127
+ // 利用闭包,存到当前请求的id
128
+ fetchId.current++;
129
+ var fetchIdClosure = fetchId.current;
117
130
  getData(request, {
118
131
  url: url,
119
132
  method: method,
@@ -121,6 +134,9 @@ function EnhanceSelect(_a) {
121
134
  })
122
135
  .then(function (resData) {
123
136
  var _a, _b, _c;
137
+ if (fetchIdClosure < fetchId.current) {
138
+ return;
139
+ }
124
140
  setLoading(false);
125
141
  var res = transformData ? transformData(resData) : resData;
126
142
  var result;
@@ -20,7 +20,7 @@ var __rest = (this && this.__rest) || function (s, e) {
20
20
  }
21
21
  return t;
22
22
  };
23
- import React, { useEffect, useCallback } from 'react';
23
+ import React, { useEffect, useCallback, useRef } from 'react';
24
24
  import { TreeSelect } from 'antd';
25
25
  import { useFetchState } from 'ztxkutils/dist/hooks';
26
26
  // 获取接口数据
@@ -53,6 +53,7 @@ function EnhanceTreeSelect(_a) {
53
53
  * 保证数据源唯一
54
54
  */
55
55
  var _d = useFetchState([]), treeData = _d[0], setTreeData = _d[1];
56
+ var fetchId = useRef(0); // 请求Id,每次请求都会加1
56
57
  // 如果selectList 发生改变,那么触发onCompleted事件
57
58
  useEffect(function () {
58
59
  if (Array.isArray(treeData) && onCompleted) {
@@ -61,9 +62,15 @@ function EnhanceTreeSelect(_a) {
61
62
  }, [treeData, onCompleted]);
62
63
  // 获取数据,并设置数据
63
64
  var getDataHandle = useCallback(function (request, options, isConcat) {
65
+ // 利用闭包,存到当前请求的id
66
+ fetchId.current++;
67
+ var fetchIdClosure = fetchId.current;
64
68
  return getData(request, options)
65
69
  .then(function (resData) {
66
70
  var _a;
71
+ if (fetchIdClosure < fetchId.current) {
72
+ return;
73
+ }
67
74
  var res = transformData ? transformData(resData) : resData;
68
75
  var result;
69
76
  if (Array.isArray(res.data)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ztxkui",
3
- "version": "1.8.3",
3
+ "version": "1.8.4",
4
4
  "private": false,
5
5
  "description": "React components library",
6
6
  "author": "zt-front-end",