两种不同的API调用 - 计算汇率

问题描述:

我向两个不同的API请求接受[比特币/美元]和[英镑/美元]。我正在使用axios来设置promise,并且在两个调用都成功解析时,我将这两个值都设置为set.State{}两种不同的API调用 - 计算汇率

我试图计算英镑/比特币之间的汇率,但对于我的生活无法包裹我的头如何最好地做到这一点。自从我使用React以来,也有一段时间了,所以任何关于改进我所得到的建议都会很棒。

app.js

import React, { Component } from 'react'; 
import './App.css'; 
import axios from 'axios'; 

class App extends Component { 

    constructor(props) { 
    super(props); 

    this.state = { 
     conv: [], 
     GBP: [], 
     XBT: [], 
    }; 
    } 

    componentDidMount() { 
    axios.all([this.getXbt(), this.getGbp()]) 
     .then(axios.spread((xbtValue, gbpValue) => { 
     const XBT = xbtValue.data.bpi.USD.rate_float; 
     const GBP = gbpValue.data.rates.GBP; 
     const conv = this.calcConversion(GBP, XBT); 
     this.setState({conv, GBP, XBT}); 
     })); 
    } 

    calcConversion(x, y) { 
    // Calculate conversion value here 
    return x/y; 
    } 

    getXbt() { 
    return axios.get('https://api.coindesk.com/v1/bpi/currentprice/XBT.json'); 
    } 

    getGbp() { 
    return axios.get('https://openexchangerates.org/api/latest.json?app_id=#API_KEY#'); 
    } 

    render() { 
    return (
     <div className="App"> 
      <div id="crypto-conversion"> 
      <span className="left">{this.state.conv}</span> 
      </div> 
      <div id="crypto-container"> 
      <span className="left">{this.state.GBP}</span> 
      <span className="right">{this.state.XBT}</span> 
      </div> 
     </div> 
    ); 
    } 
} 

export default App; 

假设的API作为GBP/1USDUSD/1XBT返回数据,则转换率是简单地在两个值的乘积,并且将导致GBP/1XBT

它也一直是同时一点点,因为我用反应,所以对提高我有什么任何意见将是巨大的。

您的代码目前看起来很好。我喜欢你处理API调用的方式,并且只要调用一次就遵循约定。

编辑:

而且,我只是,如果你愿意掏出$ 95 /月实现的,开放汇率API提供了一个/convert端点支持BTC