diff --git a/packages/pro/search/src/ProSearch.tsx b/packages/pro/search/src/ProSearch.tsx index b8047d9af..dd6054bc4 100644 --- a/packages/pro/search/src/ProSearch.tsx +++ b/packages/pro/search/src/ProSearch.tsx @@ -5,18 +5,7 @@ * found in the LICENSE file at https://github.com/IDuxFE/idux/blob/main/LICENSE */ -import { - computed, - defineComponent, - nextTick, - normalizeClass, - normalizeStyle, - onMounted, - provide, - ref, - toRef, - watch, -} from 'vue' +import { computed, defineComponent, normalizeClass, normalizeStyle, onMounted, provide, ref, toRef, watch } from 'vue' import { callEmit, convertCssPixel } from '@idux/cdk/utils' import { ɵOverflow } from '@idux/components/_private/overflow' @@ -107,7 +96,7 @@ export default defineComponent({ watch( () => props.value, () => { - nextTick(initSearchStates) + initSearchStates() }, { immediate: true, deep: true }, ) diff --git a/packages/pro/search/src/composables/useSearchStates.ts b/packages/pro/search/src/composables/useSearchStates.ts index d09745f1c..238d60057 100644 --- a/packages/pro/search/src/composables/useSearchStates.ts +++ b/packages/pro/search/src/composables/useSearchStates.ts @@ -263,7 +263,7 @@ export function useSearchStates( const segmentStates = generateSegmentStates(searchField, searchValue) if (!segmentName) { - searchState.segmentStates = generateSegmentStates(searchField, searchValue) + searchState.segmentStates = segmentStates } else { const idx = searchState.segmentStates.findIndex(state => state.name === segmentName) searchState.segmentStates[idx] = segmentStates[idx] diff --git a/packages/pro/search/src/composables/useSegmentStates.ts b/packages/pro/search/src/composables/useSegmentStates.ts index 1728851a5..192d7dc60 100644 --- a/packages/pro/search/src/composables/useSegmentStates.ts +++ b/packages/pro/search/src/composables/useSegmentStates.ts @@ -175,7 +175,7 @@ export function useSegmentStates( watch( [activeSegment, () => props.searchItem?.resolvedSearchField], ([activeSegment, searchField], [preActiveSegment]) => { - if (activeSegment?.itemKey === props.searchItem?.key) { + if (activeSegment?.itemKey === props.searchItem?.key || preActiveSegment?.itemKey !== props.searchItem?.key) { return }