From ddf036da660123e142bdb181c2bea9e96c03e624 Mon Sep 17 00:00:00 2001 From: song_xiao_lin Date: Wed, 8 May 2024 18:29:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=B1=E8=B4=A5=E9=87=8D=E8=BF=9E?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Contro.tsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/components/Contro.tsx b/src/components/Contro.tsx index 97ffa26..c420b4d 100644 --- a/src/components/Contro.tsx +++ b/src/components/Contro.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo, useState } from "react"; +import React, { useEffect, useMemo, useRef, useState } from "react"; import { Divider, Tooltip, Input } from "antd"; import classNames from "classnames"; import { @@ -19,6 +19,11 @@ export const Contro: React.FC = () => { const [autoFindFailedReason, setAutoFindFailedReason] = useState(""); const [enginePort, setEnginePort] = useState(""); const [enginePortTemp, setEnginePortTemp] = useState(enginePort); + const enginePortRef = useRef(enginePort); + + useEffect(() => { + enginePortRef.current = enginePort; + }, [enginePort]); useEffect(() => { const yakitConnectInfo = localStorage.getItem("yakit-connect"); @@ -36,9 +41,7 @@ export const Contro: React.FC = () => { setConnected(message.connected); if (message.connected === false) { localStorage.setItem("yakit-connect", ""); - setAutoFindFailedReason( - "Yakit WebSocket Controller Connect Fail" - ); + setAutoFindFailedReason("Yakit WebSocket Controller Connect Fail"); } else { localStorage.setItem( "yakit-connect", @@ -53,6 +56,7 @@ export const Contro: React.FC = () => { const findPort = (port: number, max: number) => { const ws = new WebSocket(`ws://127.0.0.1:${port}`); ws.onclose = (e: CloseEvent) => { + if (enginePortRef.current) return if (e.reason !== `FoundYakitWebSocketController` && port + 1 <= max) { setTimeout(() => findPort(port + 1, max), 200); }