Моя проблема в том, что мой подкомпонент загружает свое состояние через 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.
Как этого добиться?