【问题标题】:Pass object to URL search params将对象传递给 URL 搜索参数
【发布时间】:2022-06-10 22:51:15
【问题描述】:

我想将此对象传递给 url 搜索参数:

const obj = {
 mb_brand: car.base,
 mb_factor: car.factor,
 mb_type: car.type
}

我有设置参数的功能:

const setQuery = (key, value) => {
        let obj_url = new URL(window.location.href);
        let params = obj_url.searchParams;
        params.set(key, value);

        Router.push({
            pathname: obj_url.pathname,
            search: obj_url.search
        });
    }

到目前为止我尝试的是:

for(let i = 0 ; i < Object.keys(obj).length ; i++){
   setQuery(Object.keys(obj)[i], Object.values(obj)[i])
}

但它只是设置了 1 个参数而不是 3 个。

const obj = {
  mb_brand: 'blah',
  mb_factor: 'blah',
  mb_type: 'blah'
}


const setQuery = (key, value) => {
  let obj_url = new URL(window.location.href);
  let params = obj_url.searchParams;
  params.set(key, value);

  /*Router.push({
      pathname: obj_url.pathname,
      search: obj_url.search
  });*/

  console.log(obj_url.search)
}


for (let i = 0; i < Object.keys(obj).length; i++) {
  setQuery(Object.keys(obj)[i], Object.values(obj)[i])
}

但它只设置了最后一个参数。

我想在 url 上看到这个结果:

localhost/index?mb_brand=blah&mb_factor=blah&?mb_type=blah

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    您可以直接从对象构建搜索参数:

    const obj = {
      mb_brand: 'blah',
      mb_factor: 'blah',
      mb_type: 'blah'
    }
    
    console.log(window.location.href.split('?')[0] + '?' + new URLSearchParams(obj))

    【讨论】:

      猜你喜欢
      • 2019-11-11
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多