diff --git a/packages/vant/src/area/Area.tsx b/packages/vant/src/area/Area.tsx index 2f7b2af62..b90622547 100644 --- a/packages/vant/src/area/Area.tsx +++ b/packages/vant/src/area/Area.tsx @@ -66,15 +66,19 @@ export default defineComponent({ watch( () => props.modelValue, (newCode) => { - const lastCode = codes.value.length - ? codes.value[codes.value.length - 1] - : ''; - if (newCode && newCode !== lastCode) { - codes.value = [ - `${newCode.slice(0, 2)}0000`, - `${newCode.slice(0, 4)}00`, - newCode, - ].slice(0, +props.columnsNum); + if (newCode) { + const lastCode = codes.value.length + ? codes.value[codes.value.length - 1] + : ''; + if (newCode !== lastCode) { + codes.value = [ + `${newCode.slice(0, 2)}0000`, + `${newCode.slice(0, 4)}00`, + newCode, + ].slice(0, +props.columnsNum); + } + } else { + codes.value = []; } }, { immediate: true } diff --git a/packages/vant/src/area/utils.ts b/packages/vant/src/area/utils.ts index 0af32ccea..258d87c95 100644 --- a/packages/vant/src/area/utils.ts +++ b/packages/vant/src/area/utils.ts @@ -38,9 +38,9 @@ export function formatDataForCascade({ columnsPlaceholder: placeholder, }: AreaProps) { const { - city_list: city, - county_list: county, - province_list: province, + city_list: city = {}, + county_list: county = {}, + province_list: province = {}, } = areaList; const showCity = columnsNum > 1; const showCounty = columnsNum > 2;