Javascript 如何在React JS中使用带参数和不带参数的axios实例编写一个GET api调用

Javascript 如何在React JS中使用带参数和不带参数的axios实例编写一个GET api调用,javascript,reactjs,axios,frontend,Javascript,Reactjs,Axios,Frontend,我不熟悉JS和Axios。我想了解使用Axios创建GET实例的最佳方法,Axios可以使用参数,也可以不使用参数。我已经使用axios.create({})从React开发了一个RESTAPI调用示例,如下所示,它运行良好 import axios from 'axios'; const instance = axios.create({ baseURL: 'example.com' }); export default { getAllData: (url) =>

我不熟悉JS和Axios。我想了解使用Axios创建GET实例的最佳方法,Axios可以使用参数,也可以不使用参数。我已经使用axios.create({})从React开发了一个RESTAPI调用示例,如下所示,它运行良好

import axios from 'axios';

const instance = axios.create({
    baseURL: 'example.com'
});

export default {
    getAllData: (url) =>
        instance({
            'method': 'GET',
            'url': url
        })
}
我的要求是创建使用和不使用参数的axios GET实例,我可以通过创建两个不同的函数来实现它,如下所示:

export default {
        getAllData: (url) =>
            instance({
                'method': 'GET',
                'url': url
        }),
    
    getUser: (url, userId) =>
        instance({
                'method': 'GET',
                'url': url,
        'params' : userId
        })
    }

有没有办法在React JS中使用Axios创建一个GET函数,该函数可以使用参数,也可以不使用参数?

您可以执行以下操作:

getUser: (url, userId) =>
        instance({
                'method': 'GET',
                'url': url,
        ...(userId && {'params' : userId})
        })

如果存在
userId
,它将把
{'s params':userId}
对象附加到当前对象。

您不必创建两个不同的方法。如果不传递
userId
参数,则该参数将为null,并且不会传递给API调用

您可以使用以下代码:

从“axios”导入axios;
//设置全局默认值
axios.defaults.baseURL='example.com';
const getData=(url,userId)=>axios(url,userId);
导出默认getData;
您可以使用
userId
调用:

getData('/user',userId);
或没有:

getData('/user');

这是您可以做到的:

导出默认值{
getUser:(url,用户ID)=>
get(url{
…(userId&&{'params':userId})
})
}
axios.get('/user?ID=12345')
  .then(function (response) {
    // handle success
    console.log(response);
  })
  .catch(function (error) {
    // handle error
    console.log(error);
  })