From 070e7b69118741dd96506d90bb446216c775f616 Mon Sep 17 00:00:00 2001 From: wans10 <51012039+wans10@users.noreply.github.com> Date: Thu, 19 Jun 2025 13:34:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B8=A0=E9=81=93=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E6=A8=A1=E5=9E=8B=E9=80=89=E6=8B=A9=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E6=A1=86=E6=A8=A1=E5=9E=8B=E9=87=8D=E5=A4=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/pages/Channel/EditChannel.js | 33 ++++++++++++++++++---------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/web/src/pages/Channel/EditChannel.js b/web/src/pages/Channel/EditChannel.js index 8bfe5812..09b5ecae 100644 --- a/web/src/pages/Channel/EditChannel.js +++ b/web/src/pages/Channel/EditChannel.js @@ -298,18 +298,27 @@ const EditChannel = (props) => { } }; - useEffect(() => { - let localModelOptions = [...originModelOptions]; - inputs.models.forEach((model) => { - if (!localModelOptions.find((option) => option.label === model)) { - localModelOptions.push({ - label: model, - value: model, - }); - } - }); - setModelOptions(localModelOptions); - }, [originModelOptions, inputs.models]); +useEffect(() => { + // 使用 Map 来避免重复,以 value 为键 + const modelMap = new Map(); + + // 先添加原始模型选项 + originModelOptions.forEach(option => { + modelMap.set(option.value, option); + }); + + // 再添加当前选中的模型(如果不存在) + inputs.models.forEach(model => { + if (!modelMap.has(model)) { + modelMap.set(model, { + label: model, + value: model, + }); + } + }); + + setModelOptions(Array.from(modelMap.values())); +}, [originModelOptions, inputs.models]); useEffect(() => { fetchModels().then();