Skip to content

Commit 452f8da

Browse files
committed
fix: 修复向后端请求两次插件列表
1 parent 941c49c commit 452f8da

File tree

2 files changed

+24
-15
lines changed

2 files changed

+24
-15
lines changed

packages/web/src/main.tsx

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { scan } from 'react-scan'
2-
import React from 'react'
2+
// import React from 'react'
33
import ReactDOM from 'react-dom/client'
44
import { BrowserRouter } from 'react-router-dom'
55
import App from './App.tsx'
@@ -16,12 +16,12 @@ if (import.meta.env.MODE === 'development') {
1616
}
1717

1818
ReactDOM.createRoot(document.getElementById('root')!).render(
19-
<React.StrictMode>
20-
<BrowserRouter basename='/web/'>
21-
<Provider>
22-
<ConsoleMessage />
23-
<App />
24-
</Provider>
25-
</BrowserRouter>
26-
</React.StrictMode>,
19+
// <React.StrictMode>
20+
<BrowserRouter basename='/web/'>
21+
<Provider>
22+
<ConsoleMessage />
23+
<App />
24+
</Provider>
25+
</BrowserRouter>
26+
// </React.StrictMode>,
2727
)

packages/web/src/pages/dashboard/plugins/config.tsx

+15-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { request } from '@/lib/request'
2-
import { useEffect, useState } from 'react'
2+
import { useEffect, useState, useCallback, useRef } from 'react'
33
import { useSearchParams } from 'react-router-dom'
44
import { DashboardPage } from '@/components/config/plugin/plugins'
55
import { Spinner } from '@heroui/spinner'
@@ -25,23 +25,27 @@ export default function PluginConfigPage () {
2525
info: {
2626
id: '',
2727
name: '',
28-
}
28+
},
2929
})
3030

3131
const [loading, setLoading] = useState(true)
3232
const [error, setError] = useState<Error | null>(null)
33+
const requestSentRef = useRef(false)
3334

34-
const fetchConfig = async () => {
35+
const fetchConfig = useCallback(async () => {
3536
if (!name || !type) return
37+
// 如果已经发送过请求,则不再重复发送
38+
if (requestSentRef.current) return
3639

3740
try {
3841
setLoading(true)
3942
setError(null)
43+
requestSentRef.current = true // 标记请求已发送
4044
const result = await request.serverPost<GetConfigResponse, GetConfigRequest>(
4145
'/api/v1/plugin/config/get',
4246
{
4347
name,
44-
type
48+
type,
4549
}
4650
)
4751
setConfig(result)
@@ -51,12 +55,17 @@ export default function PluginConfigPage () {
5155
} finally {
5256
setLoading(false)
5357
}
54-
}
58+
}, [name, type])
5559

5660
useEffect(() => {
5761
if (!name || !type) return
5862
fetchConfig()
59-
}, [name, type])
63+
64+
// 组件卸载时重置标记,以便在组件重新挂载时可以再次发送请求
65+
return () => {
66+
requestSentRef.current = false
67+
}
68+
}, [name, type, fetchConfig])
6069

6170
if (!name || !type) {
6271
return (

0 commit comments

Comments
 (0)