Ответы пользователя по тегу React
  • Как отловить момент пробрасывания данных из родительской компоненты в дочернюю?

    @chatterbox777 Автор вопроса
    Решил проблему вот так
    spoiler
    import React, { useEffect, useState } from "react";
    import { NavLink } from "react-bootstrap";
    import styles from "./Ability.module.css";
    const Ability = ({ ability }) => {
      console.log(ability);
    
      const [state, setstate] = useState({});
    
      useEffect(() => {
        console.log("RENDERED");
        if (Array.isArray(ability)) {
          console.log("выполняется поиск");
    
          const neededText = ability.find((el, index) => {
            return el.language.name === "en";
          });
          setstate({ neededText });
        }
      }, [ability]);
    
      console.log(state);
      // остановился на том что приходят две языковых версии текста абилок... надо придумать как будет отображаться именно английская..
      return (
        <div>
          <div className="container">
            <div className="row">
              {state.neededText && (
                <div className="col-lg-12">
                  <p>{state.neededText.effect}</p>
                  <p>{state.neededText.short_effect}</p>{" "}
                </div>
              )}
    
              <div className="col-lg-12">
                <NavLink to="/pokemon">Вернуться назад</NavLink>
              </div>
            </div>
          </div>
        </div>
      );
    };
    
    export default Ability;


    короче надо было проверять на существование Array + поставить зависимость в useEffect....
    Ответ написан
    1 комментарий
  • Не пробрасываются данные в компонент из за неработающего useEffect'a?

    @chatterbox777 Автор вопроса
    1. В возвращаемой функции useEffect'ом отменяйте axios запрос.

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