fix: 股票详情页K线 React 310 崩溃(useMemo置于early return前) + 时间范围切换

- 修复 React error #310:displayData 的 useMemo 原置于 if(loading) early return 之后,
  导致 loading 切换时 hook 数量变化触发崩溃。移到所有 early return 之前。
- K线一次性拉取 365 天,前端按 3月/6月/1年 切片展示,默认近3月。
This commit is contained in:
Sakurasan
2026-08-28 03:41:18 +08:00
parent d5516b72d7
commit 24c8b31301
2 changed files with 67 additions and 33 deletions
+22 -16
View File
@@ -124,7 +124,7 @@ importers:
version: 11.18.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
input-otp:
specifier: ^1.4.2
version: 1.4.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
version: 1.5.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
lucide-react:
specifier: ^0.575.0
version: 0.575.0(react@19.2.7)
@@ -148,7 +148,7 @@ importers:
version: 2.15.4(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
sonner:
specifier: ^2.0.7
version: 2.0.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
version: 2.0.8(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
tailwind-merge:
specifier: ^3.6.0
version: 3.6.0
@@ -1613,11 +1613,11 @@ packages:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
eventemitter3@4.0.1:
resolution: {integrity: sha512-MnI0l35oYL2C/c80rjJN7qu50MDx39yYE7y7oYck2YA3v+y7EaAenY8IU8AP4d1RWqE8VAKWFGSh3rfP87ll3g==}
fast-equals@5.4.0:
resolution: {integrity: sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==}
fast-equals@5.4.1:
resolution: {integrity: sha512-DjlFSM5Pk9cGcL0q5QXl66eGzx0N6szNgaswwc5ZphlBohjTVJSnGgI+rJVOgOi65qUoQnDZN4nDqi33udtydQ==}
engines: {node: '>=6.0.0'}
fdir@6.5.0:
@@ -1662,8 +1662,8 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
input-otp@1.4.2:
resolution: {integrity: sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==}
input-otp@1.5.0:
resolution: {integrity: sha512-3AcfdW1sNG0FmSA5hHMBXG7jNW5CdcdKs8ln8JOmn6S2SRkoXoJx+2UwC+ZvjflfnOdHJx0SfQ9/YjlxVYLtGQ==}
peerDependencies:
react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc
react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc
@@ -1944,11 +1944,15 @@ packages:
resolution: {integrity: sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw==}
engines: {node: '>=10'}
sonner@2.0.7:
resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==}
sonner@2.0.8:
resolution: {integrity: sha512-UM/ByIoFra8yzV75n1o0Puu0bw5U/9UNnDacrJNspekBewIfsQ3D6ez1nvlWpt7aTsO6rujQtifBpycwIivqlg==}
peerDependencies:
'@types/react': ^18.0.0 || ^19.0.0
react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
peerDependenciesMeta:
'@types/react':
optional: true
source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
@@ -3492,9 +3496,9 @@ snapshots:
escalade@3.2.0: {}
eventemitter3@4.0.7: {}
eventemitter3@4.0.1: {}
fast-equals@5.4.0: {}
fast-equals@5.4.1: {}
fdir@6.5.0(picomatch@4.0.5):
optionalDependencies:
@@ -3520,7 +3524,7 @@ snapshots:
graceful-fs@4.2.11: {}
input-otp@1.4.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
input-otp@1.5.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
dependencies:
react: 19.2.7
react-dom: 19.2.7(react@19.2.7)
@@ -3687,7 +3691,7 @@ snapshots:
react-smooth@4.0.4(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
dependencies:
fast-equals: 5.4.0
fast-equals: 5.4.1
prop-types: 15.8.1
react: 19.2.7
react-dom: 19.2.7(react@19.2.7)
@@ -3721,7 +3725,7 @@ snapshots:
recharts@2.15.4(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
dependencies:
clsx: 2.1.1
eventemitter3: 4.0.7
eventemitter3: 4.0.1
lodash: 4.18.1
react: 19.2.7
react-dom: 19.2.7(react@19.2.7)
@@ -3772,10 +3776,12 @@ snapshots:
seroval@1.5.4: {}
sonner@2.0.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
sonner@2.0.8(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
dependencies:
react: 19.2.7
react-dom: 19.2.7(react@19.2.7)
optionalDependencies:
'@types/react': 19.2.17
source-map-js@1.2.1: {}