L oop вызывает функцию только один раз с последним элементом в массиве, а не один раз за элемент - PullRequest
0 голосов
/ 20 марта 2020

У меня есть массив любимых городов, которые я пытаюсь получить данные для каждого города, зациклив мой массив и вызвав функцию выборки. У меня проблема в том, что он получает только последний элемент в массиве и отображает одну карту погоды вместо одной карты на любимый город. Чтобы запустить это, у меня есть событие click, которое вызывает функцию, которая зацикливает каждый любимый город и вызывает выборку для названия этого города. Нажав кнопку несколько раз, я могу получить все города один за другим, но хочу программно получить все города одним щелчком мыши.

Вот мой код:

//This is my click function and favorites is an array with citys ex. ['New York','Paris','Rome']
const handleFavorites = () => {
props.queryArray(favorites);};

//This is my fetch function where i try to loop with map (I have also tried with forEach)
const handleQueryArray = async queryArray => {
queryArray.map(async query =>{
  let fetchedWeather = await GetWeatherData(query);
  let fetchedForecast = await GetForecastData(query);
  if (fetchedWeather.cod === 200) {
    if (!search.includes(fetchedWeather.name)) {
      setSearch([...search, fetchedWeather.name]);
      let storedWeather = [...weatherData, fetchedWeather];
      let storedForecast = [...forecastData, fetchedForecast];
      setWeatherData(storedWeather);
      setForecastData(storedForecast);
    }
  } else {
    console.log("No data");
  }
})};
...