Как преобразовать строку в свойство ответа axios? - PullRequest
0 голосов
/ 21 октября 2019

Я смотрел довольно много тем на SO, но не мог понять это. Я, должно быть, упускаю что-то действительно простое.

Я хочу преобразовать строковое поле 'field' в свойство. Как я могу это сделать? Я попытался с response.data.[a.field].map, но он не работает.

const apis = [
  {link: 'http://api.stack...', field: 'items'},
  {link: 'https://newsap..', field: 'articles'}
]

apis.forEach((a) => {
    axios.get(a.link)
    .then(response => {
        // if the response comes from the first link I need to use response.data.items,
        // from the second response.data.articles and so on.
        response.data.[a.field].map(... // not working
    })
}

Я отправляю несколько ajax requests, и я хотел бы обработать ответы только с одной функцией карты. Проблема в том, что имя свойства, содержащего данные, которые я хочу отобразить, отличается для каждого API.

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

U может сделать это таким же образом

const apis = [   {link: 'http://api.stack...', field: 'items'},   {link: 'https://newsap..', field: 'articles'}, ]

apis.forEach((a)=>{
    axios.get(a.link)
    .then(response=>{
        // if the response comes from the first link I need to use 
         response.data.items,
        // from the second response.data.articles and so on.
        response.data[a.field].map(... 
       // now in this case you are taking the **data** of **a** and after that you are going to access the value of field the same which you did for link i.e a.link 

    }) }
0 голосов
/ 21 октября 2019

Попробуйте это:

response.data[a.field].map()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...