Не удается отобразить/отобразить извлеченные данные из api с помощью, ReactJS, Axios, Redux

#reactjs #api #redux #axios

Вопрос:

именно здесь все и происходит

       const Home = () => {
          //FETCHING THE INFORAMATION
          const dispatch = useDispatch();
          useEffect(() => {
            dispatch(fetchHeroes());
          }, [Home]);
          //PULLING THE DATA OR EXTRACTING IT FROM THE STATE
          const { heroesInfo, heroName, heroType, attackType, mostPicked } =
            useSelector((state) => state.HeroesInfoAll);
          console.log(heroesInfo);
          return (
            <div>
              <HeroList>
                {heroesInfo.map((heroes) => {
                  <Heroes />;
                })}
              </HeroList>
            </div>
          );
        };

 

Я также изучаю Redux. У меня есть редуктор, в котором есть эти массивы, в которых я хочу передать значения соответственно на данный момент, хотя я передаю значение только в массив «heroesInfo»

 
    const initState = {
      heroesInfo: [],
      heroName: [],
      heroType: [],
      attackType: [],
      mostPicked: [],
    };
    
    const HInfoReducer = (state = initState, action) => {
      switch (action.type) {
        case "FETCH_HEROES":
          return { ...state, heroesInfo: action.payload.heroesInfo };
        default:
          return { ...state };
      }
    };
    
    
    export default HInfoReducer;

 

Это компонент Heroes, который я хочу отобразить для каждого значения данных, находящегося в состоянии, которое вы можете увидеть в первом фрагменте кода

 
    const Heroes = () => {
      return (
        <>
          <h1>Hero Name</h1>
          <div className="hero-image">
            <img src="" alt="Hero Image" />
          </div>
          <h2>Hero Type</h2>
          <h2></h2>
        </>
      );
    };
    export default Heroes;

 

Я также консольно вывел некоторые результаты, чтобы подтвердить, присутствовали ли данные в состоянии или нет. Установил инструменты Redux, чтобы проверить это, а вот результат

 
[this image shows that the data was extracted for sure after the FETCH_HEROES action ran][1]
[Here I console logged out the heroesInfo array which has the data which I want in it however on the left side my screen is completely blank. I expect it to render out my component for each element present inside of the array][2]


  [1]: https://i.stack.imgur.com/nRqZr.png
  [2]: https://i.stack.imgur.com/CZbHn.png


 

Я надеюсь, что на этот раз меня не забанят, я действительно не знаю, как задавать вопросы, но все, что я хочу знать, это почему компонент не отображается, даже если данные присутствуют в них?

Ответ №1:

Пожалуйста, проверьте компонент HeroList, возвращает ли компонент правильные данные.

Комментарии:

1. HeroList на самом деле просто компонент в стиле.div, поэтому у него есть свойства css, которые я не хочу использовать необычно :(

Ответ №2:

Я переписал код и теперь могу получить данные, но у меня возникла новая проблема, о которой я скоро спрошу.