3 回答

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
使用路徑和查詢字符串的?URL 對(duì)象格式將對(duì)查詢參數(shù)進(jìn)行內(nèi)部編碼。
為避免這種情況,可以將路徑和查詢字符串作為字符串傳遞。
router.push(`${router.asPath}?pets=cats,dogs`)

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
您需要對(duì) URI 參數(shù)進(jìn)行解碼和編碼。路由器會(huì)自動(dòng)為您編碼查詢參數(shù):
encodeURIComponent('cats,dogs') // "cats%2Cdogs"
閱讀時(shí)需要對(duì)它們進(jìn)行解碼:
decodeURIComponent("cats%2Cdogs") // "cats,dogs"

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
從上面的問(wèn)題來(lái)看, 我推斷出除了路徑名(以 slug 形式出現(xiàn))之外,還有一些其他查詢參數(shù)。你希望添加它。pets=cats,dogs
如果有人想要獲取路徑名,我們可以使用,其余的舊查詢參數(shù)可以使用 .window.location.pathnamewindow.location.search
總而言之,人們可以輕松使用
const subpathAndQuery = window.location.pathname + window.location.search;
router.push(`${subpathAndQuery}&pets=cats,dogs`);
注意:if 是查詢參數(shù)的第一個(gè)鍵值對(duì)。您必須使用 而不是 .pets=cats,dogs?&
添加回答
舉報(bào)