Axios - 获取带有参数的 url,而不实际发出请求

TKo*_*KoL 8 javascript axios

我的 React 项目中有一些代码,如下所示:

        const url = '/create-label-shipments.json';
        const filters = Object.assign({}, this.state.filters);
        filters.page = this.state.page;
        const response = await axios.get(url, {params: filters});
Run Code Online (Sandbox Code Playgroud)

现在我知道 axios 接受该params对象并使用查询参数创建一个新的 url,例如'/create-label-shipments.json?page=1&date=2020-03-20&etc...'

我希望我能做的是在代码的不同部分调用一些 axios 函数,其功能与上面完全相同,但它不是发出请求并给我响应,而是只给我 URL。

        const url = '/create-label-shipments.csv';
        const filters = Object.assign({}, this.state.filters);
        const url = await axios.getUrl(url, {params: filters});
        // at this point, no request was made, and url === '/create-label-shipments.csv?page=1&date=2020-03-20&etc...'
Run Code Online (Sandbox Code Playgroud)

Nic*_*ons 14

也许您正在寻找axios#getUri(),您可以通过将params属性和url属性添加到传递给方法的配置对象来使用它:

const params = {
  page: 1,
  date: '2020-03-20'
}

const url = '/create-label-shipments.csv';
const res = axios.getUri({url, params});

console.log(res);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.min.js" integrity="sha256-T/f7Sju1ZfNNfBh7skWn0idlCBcI3RwdLSS4/I7NQKQ=" crossorigin="anonymous"></script>
Run Code Online (Sandbox Code Playgroud)