响应中的axios GET请求功能导出/导入

karolis2017

如何从单独的.js文件导出axios获取请求,以便可以通过导入ie在main.js中使用它:

import { getNewQuote }  from './api'

class App extends Component {

  constructor () {
    super();
    this.state = {
      quote: []
    }
    this.handleNewQuote = this.handleNewQuote.bind(this);
  }
  componentDidMount() {
    getNewQuote();
  }

  handleNewQuote() {
    getNewQuote();
  }
   ...

我的api.js看起来像这样:

export function getNewQuote(){
    axios.defaults.baseURL = 'https://andruxnet-random-famous-quotes.p.mashape.com';
    axios.defaults.headers.common['X-Mashape-Key'] = "MY-API-KEY";
    axios.get('/?cat=famous&count=1')
      .then(res => {
        this.setState({ quote: res.data })
      })
      .catch(error => {
        console.log(error)
      })
}

通过此设置,我在控制台中遇到错误:

TypeError:无法读取api.js:8处未定义的属性“ setState”

我认为问题在于:

axios getNewQuote导出或componentDidMount中的getNewQuote调用

有什么帮助吗?

Shubham Khatri

您可以从axios请求中返回promise,然后在调用函数中进行处理,例如

export function getNewQuote(){
    axios.defaults.baseURL = 'https://andruxnet-random-famous-quotes.p.mashape.com';
    axios.defaults.headers.common['X-Mashape-Key'] = "MY-API-KEY";
    return axios.get('/?cat=famous&count=1')
}

并像

componentDidMount() {
    getNewQuote().then(res => {
        this.setState({ quote: res.data })
      })
      .catch(error => {
        console.log(error)
      });
  }

  handleNewQuote() {
    getNewQuote().then(res => {
        this.setState({ quote: res.data })
      })
      .catch(error => {
        console.log(error)
      });
  }

getNewQuote使用Javascript.call方法调用该函数并将其引用传递this给它,例如

 componentDidMount() {
    getNewQuote.call(this)
  }

  handleNewQuote() {
    getNewQuote.call(this)
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

axios 从 GET 请求响应中设置 GET 请求的 URL

无法从 axios 函数之外的 axios GET 请求响应中读取值

如何在 2 中通过 axios 的请求传递最终响应

Axios 请求 - 查看响应中的所有对象

响应新的 axios 请求

React Axios Get 方法:从响应中访问键、值元素

如何在axios中使用png响应获取响应中的请求

从导出的类中反应本机导入功能

Axios:如何拦截和响应axios请求

Axios在React应用程序中请求响应401,但是在Postman中工作?

以与搜索功能请求相同的顺序获取 axios 响应

如何在React JS中访问axios请求响应的嵌套对象值

如何将Axios请求的(过滤后的)响应分配给VueJS中的变量?

如何从导入中列出的R包中覆盖导出的功能

axios.get请求返回GET,HEAD作为响应

如何导出要在ES6中导入的功能?

根据来自 axios GET 请求的响应填充 Vue 数据

动态下拉列表响应axios获取请求

React组件未呈现Axios请求的响应

将axios请求的响应推入数组

发送流作为axios请求的响应

预检响应中的 Access-Control-Allow-Headers 不允许请求头字段授权。(节点,反应,axios)

Axios + Sequelize ValidationError = Promise catch 块中没有请求或响应对象?如何处理?

尝试使用 Axios 向 API 发送 POST 请求时,响应中的“Access-Control-Allow-Credentials”标头为“ ”

在vue上处理axios.get响应

如何使用axios.get的响应类型

在axios GET请求中获取空对象

无法从 axios GET 请求中检索数据

如何将axios.get多个响应结果包装到一个数组中?