From 73e9c49a8f751b6e37256c209dbaa8044abcf192 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=A0=E9=99=90UCW?= Date: Wed, 25 Aug 2021 18:06:20 +0800 Subject: [PATCH] ui: autocomplete: fix `value()` method --- .../components/autocomplete/components/AutoComplete.jsx | 5 +++-- packages/ui-default/components/autocomplete/index.jsx | 8 ++------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/ui-default/components/autocomplete/components/AutoComplete.jsx b/packages/ui-default/components/autocomplete/components/AutoComplete.jsx index 9b0f7ca93..b3c828649 100644 --- a/packages/ui-default/components/autocomplete/components/AutoComplete.jsx +++ b/packages/ui-default/components/autocomplete/components/AutoComplete.jsx @@ -77,8 +77,8 @@ const AutoComplete = forwardRef(function AutoComplete(props, ref) { }, 300); const toggleItem = (item) => { + const key = itemKey(item); if (multi) { - const key = itemKey(item); const idx = selectedKeys.indexOf(key); if (idx !== -1) { setSelected((s) => { @@ -99,7 +99,8 @@ const AutoComplete = forwardRef(function AutoComplete(props, ref) { inputRef.current.focus(); } else { setSelected([item]); - inputRef.current.value = itemKey(item); + setSelectedKeys([key]); + inputRef.current.value = key; dispatchChange(); } setItemList([]); diff --git a/packages/ui-default/components/autocomplete/index.jsx b/packages/ui-default/components/autocomplete/index.jsx index b32b295ff..14f827ed3 100644 --- a/packages/ui-default/components/autocomplete/index.jsx +++ b/packages/ui-default/components/autocomplete/index.jsx @@ -71,12 +71,8 @@ export default class AutoComplete extends DOMAttachedObject { } value() { - if (this.ref?.getSelectedItems) { - const selected = this.ref.getSelectedItems(); - if (this.options.multi) return selected; - return selected[0]; - } - return this.$dom.val(); + if (this.options.multi) return this.$dom.val(); + return this.ref?.getSelectedItems()[0] ?? null; } detach() {