难以访问axios GET请求中的特定数据

时间:2018-01-21 03:33:58

标签: javascript reactjs get axios

我正在使用CryptoCompare API(https://www.cryptocompare.com/api/#-api-data-coinlist-)而我在搜索时无法访问特定的硬币信息。相反,我返回了整个硬币列表而不是我搜索过的硬币列表。我猜这是我当时声明中的一个问题,但我不确定。这是我到目前为止的代码 - 问题区域在searchImage

class SearchForm extends React.Component{
    constructor(){
        super();
        this.state = {
            currentSearch: "",
            priceResults: [],
            cryImage: [],
        }
        this.handleChange = this.handleChange.bind(this);
        this.handleSubmit = this.handleSubmit.bind(this);
        this.cryPrice = this.cryPrice.bind(this);
    }

    cryPrice(param){
        axios.get(`https://min-api.cryptocompare.com/data/pricemulti?fsyms=${param}&tsyms=CAD`)
            .then(res => {
                const cryptos = res.data;
                console.log(cryptos);
                this.setState({
                    priceResults: cryptos
                })
            })
        }

    searchImage(param){
        axios.get(`https://min-api.cryptocompare.com/data/all/coinlist`, {
            params: {
                name: `${param}`,
            }
        }).then(res => {
            const cryImage = res.data;
            console.log(cryImage);
            this.setState({
                cryImage 
            })
        })
    }

   
    handleChange(e){
        const currentSearchValue = e.target.value;
        this.setState({
            currentSearch: currentSearchValue
        })
        console.log(currentSearchValue);
    }

    handleSubmit(e){
        e.preventDefault();
        this.cryPrice(this.state.currentSearch);
        this.searchImage(this.state.currentSearch);
        this.setState({
            currentSearch: ""
        })
    }

1 个答案:

答案 0 :(得分:0)

它在文档中说(根据我的理解),这个获取请求不会占用参数。

  

<强> CoinList

     

获取网站上所有可用硬币的一般信息。

     

网址参数

     

因此,当您发送请求时,您将始终获得所有硬币。现在您可以做的是通过响应过滤您感兴趣的唯一一个。这意味着,在您.then中使用的功能正文中,您只需通过param阅读有关硬币的信息。