Reactjs Контекст переопределяется при повторном посещении маршрута. - PullRequest
0 голосов
/ 31 марта 2020

Моя проблема в том, что мой подкомпонент загружает свое состояние через useEffect (только один раз при монтировании: используя [] в качестве 2-го параметра) при подключении к json API. Потом я пу sh данных в контекст. Однако, когда я возвращаюсь к маршруту, контекст переопределяется. Как правильно проверить значение контекста (длину) перед воссозданием состояния компонентов с помощью useState?

const Planets = props => {

    let initial_state = [];
    if(PlanetContext.planets && PlanetContext.planets.length === 0){
        initial_state = PlanetContext.planets;
    }

    const [planets, setPlanets] =  useState(initial_state);

    const componentDidMount = () => {
        if(!planets.length){
            requireAPIState();
        }
    };

    //init
    useEffect(() => {
        componentDidMount();
    }, []);

Это не совсем правильный путь. Вся идея состоит в том, чтобы сделать вызов API необязательным, чтобы иметь возможность перехватывать уже заполненные данные из контекста, а не перехватывать их снова с сервера. Он должен оставаться в состоянии c.

Как этого добиться?

...