Axios-在没有实际请求的情况下获取带有参数的url



我的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});

现在我知道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...'

也许您正在寻找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);
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.min.js" integrity="sha256-T/f7Sju1ZfNNfBh7skWn0idlCBcI3RwdLSS4/I7NQKQ=" crossorigin="anonymous"></script>

最新更新