@frolldoll

Как получить сторонний api на React Redux?

Нужно ли делать сервак что бы получать api стороннего сервиса и потом отправлять в promise на фронтенде REACT .
Я пробовал без сервака сделать следующие , action у меня получает данные в payload вот так -
import request from 'superagent'

export const fetchCryptos = async () =>{ 
    const { body } = await request.get('https://api.bitfinex.com/v2/tickers?symbols=tBTCUSD,tLTCUSD')
    return body.cryptos
   
}

А потом после обработки в редьюсере отображаю следующим образом -
import React, { Component } from 'react'
import { connect } from 'react-redux'

import { fetchCryptos } from 'actions'
import { getCryptos } from 'selectors'

class Cryptos extends Component {
    componentDidMount() {
        this.props.fetchCryptos()
    }
    renderCrypto(obj,index){
            return(
                <div key={index} className='col-md-1'><a href="#" className="badge badge-success"><h3>{obj.name}</h3> {obj.price}$</a></div>
            )}
    
    render() {
        const { cryptos } = this.props
        return (
            
            <div>
                <div className='books row'>
                    {cryptos.map((obj,index)=>this.renderCrypto(obj,index))}
                </div>
            </div>
        )
    }
}

const mapStateToProps = state => ({
cryptos: getCryptos(state)
})

const mapDispatchToProps = {
    fetchCryptos
}

export default connect(mapStateToProps, mapDispatchToProps)(Cryptos)

Но Это не работает никак , ошибка FETCH_FAILURE ! Но вот если запрос делать не к сервису а к моковым данным например таким
export default [
    {
        id: "1",
        categoryId: "1",
        name: "BTC",
    },
    {
        id: "2",
        categoryId: "1",
        name: "ETH",
    },
Но тут видите как оно структурировано , хотя может не в этом дело .
Что мне делать ребят , я сижу второй день и не понимаю , кст если я моковые данные закину на mocky.io и сделаю api , то опять все плохо и он их не принимает . хз простой это или сложный вопрос , поставлю "простой"
  • Вопрос задан
  • 468 просмотров
Решения вопроса 1
RomReed
@RomReed
JavaScript, Flutter, ReactNative, Redux, Firebase
я обычно для запросов использую или fetch или axios. Советую папробовать axios но с начала установите postman и проверьте работает ли api (а то вы написали запрос у вас прилетает еррор а работает ли апи не понятно)
https://github.com/axios/axios документация
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Используй axios он аналогичен ajax
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы