axios get params不继承create中的params

时间:2019-06-05 00:19:16

标签: javascript reactjs youtube-api axios

玩youtube api和reactjs

我正在呼叫youtube api。最近发现create中有axios,所以我想使用它,但以某种方式params仍被覆盖

我在这里做什么错了?

我有一个名为youtube.api的文件

import axios from 'axios';

export default axios.create({
    baseURL: 'https://www.googleapis.com/youtube/v3',
    params: {
        part: 'snippet',
        key: 'blahkey',
    }
});

然后在我的反应handleOnSubmit中     从“ ../apis/youtube”导入youtube;

handleOnSubmit = async (e) => {
    e.preventDefault();
    console.log(this.state.query);
    const response = await youtube.get('/search', {
        params: { q: this.state.query }
    });

    console.log(response, 'response');

};

console.log(response, 'response');

我得到一个错误https://www.googleapis.com/youtube/v3/search?q=book 400

网址中缺少paramspart中的key

有人可以帮我吗?

预先感谢

2 个答案:

答案 0 :(得分:1)

我发现这可能是由于新版本问题所致。我正在使用"axios": "^0.19.0"导致此问题。

我将其降级为"axios": "^0.18.0""axios": "^0.18.1",都工作正常

P.S。 我在github上浏览了他们的发行票,这是6天前发布的https://github.com/axios/axios/issues/2190

答案 1 :(得分:0)

降级Axios的版本对我有帮助。

要降级版本

杀死服务器并运行

npm install --save axios@0.18.1

这会将Axios的版本从最新版本降级到0.18.1