8000 fix(useRouteParams,useRouteQuery): set route param/query to undefined… · vueuse/vueuse@c44fea4 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content < 8000 div data-target="react-partial.reactRoot">

Commit c44fea4

Browse files
mtdvlprantfu
andauthored
fix(useRouteParams,useRouteQuery): set route param/query to undefined when null or defaultValue (#3583)
Co-authored-by: Anthony Fu <anthonyfu117@hotmail.com>
1 parent b33ab7b commit c44fea4

File tree

4 files changed

+24
-6
lines changed

4 files changed

+24
-6
lines changed

packages/router/useRouteParams/index.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ describe('useRouteParams', () => {
202202
await nextTick()
203203

204204
expect(page.value).toBe(1)
205-
expect(route.params.page).toBe(1)
205+
expect(route.params.page).toBeUndefined()
206206
expect(onUpdate).not.toHaveBeenCalled()
207207
})
208208

packages/router/useRouteParams/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ export function useRouteParams<
6262
if (param === v)
6363
return
6464

65-
param = v
66-
_paramsQueue.set(name, v)
65+
param = (v === defaultValue || v === null) ? undefined : v
66+
_paramsQueue.set(name, (v === defaultValue || v === null) ? undefined : v)
6767

6868
trigger()
6969

packages/router/useRouteQuery/index.test.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ describe('useRouteQuery', () => {
222222
await nextTick()
223223

224224
expect(page.value).toBe(1)
225-
expect(route.query.page).toBe(1)
225+
expect(route.query.page).toBeUndefined()
226226
expect(onUpdate).not.toHaveBeenCalled()
227227
})
228228

@@ -263,4 +263,22 @@ describe('useRouteQuery', () => {
263263
expect(page.value).toBe(2)
264264
expect(lang.value).toBe('en-US')
265265
})
266+
267+
it.each([{ value: 'default' }, { value: null }, { value: undefined }])('should reset value when $value value', async ({ value }) => {
268+
let route = getRoute({
269+
search: 'vue3',
270+
})
271+
const router = { replace: (r: any) => route = r } as any
272+
273+
const search: Ref<any> = useRouteQuery('search', 'default', { route, router })
274+
275+
expect(search.value).toBe('vue3')
276+
expect(route.query.search).toBe('vue3')
277+
278+
search.value = value
279+
280+
await nextTick()
281+
282+
expect(route.query.search).toBeUndefined()
283+
})
266284
})

packages/router/useRouteQuery/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ export function useRouteQuery<
6262
if (query === v)
6363
return
6464

65-
query = v
66-
_queriesQueue.set(name, v)
65+
query = (v === defaultValue || v === null) ? undefined : v
66+
_queriesQueue.set(name, (v === defaultValue || v === null) ? undefined : v)
6767

6868
trigger()
6969

0 commit comments

Comments
 (0)
0