Как использовать идентификатор в одном API для получения информации от другого API в Redux? - PullRequest
2 голосов
/ 27 мая 2019

Таким образом, ссылка API www.api.com/id_list дает мне идентификаторы для некоторой информации в другом API со ссылкой www.api.com/ndomid‹.

Я использую Redux и могу получитьсписок идентификаторов, однако я изо всех сил пытаюсь получить информацию, необходимую через идентификаторы.Он продолжает говорить мне, что это не определено.

Так вот мой код:


    export const EVENT_DETAIL = 'EVENT_DETAIL';

    export const eventDetail = (payload) => {
     return {
       type: EVENT_DETAIL,
       data: payload.data,
       index: payload.index
      };
    }  

    export const getDetail = (events, index) =>  {
        return function(dispatch) {
        const url = `${URL2}/${events}`;
        axios.get(url)
            .then (function (response) {
                   dispatch(eventDetail({
                   data: response.data.events,
                   index: index
               }))
            })
            .catch(function(error) {
                console.log(error);
            })
        }
    }

    componentDidMount = () =>  {
        this.props.getDetail();
        console.log(this.props.getDetail())
       }

Есть идеи, почему я не могу получить информацию для отображения?

Продолжайте получать следующую ошибку:

Error: Request failed with status code 404
    at createError (createError.js:17)
    at settle (settle.js:19)
    at XMLHttpRequest.handleLoad (xhr.js:78)

1 Ответ

0 голосов
/ 27 мая 2019

Ваше действие getDetail возвращает функцию, которая сама по себе ничего не возвращает - вот почему undefined регистрируется на вашей консоли.Поместите возврат напротив функции axios.get, это будет ваш запрос в форме обещания.

return axios.get(url)
  .then (function (response) {
    dispatch(eventDetail({
      data: response.data.events,
      index: index
    }))
  })
  .catch(function(error) {
    console.log(error);
  })
}

Чтобы получить ответ на ваш запрос, вам нужно дождаться его разрешения.Это можно сделать, позвонив по обещанию.Ваш componentDidMount будет выглядеть следующим образом.

componentDidMount = () =>  {
  this.props.getDetail()
  .then(res => console.log(res))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...