В настоящее время я пытаюсь преобразовать некоторые ловушки в компоненты класса в React. Я пытаюсь воссоздать код, который позволяет хранить сессии, чтобы приложению не нужно было так сильно извлекать данные из API. Вот код:
useEffect(() => {
if(sessionStorage.homeState){
// console.log("Getting from session storage");
setState(JSON.parse(sessionStorage.homeState));
setLoading(false);
}else{
// console.log("Getting from API");
fetchMovies(POPULAR_BASE_URL);
}
}, [])
useEffect(() => {
if(!searchTerm){
// console.log("Writing to session storage");
sessionStorage.setItem('homeState', JSON.stringify(state));
}
}, [searchTerm, state])
Это два хука useEffect, поэтому для меня имеет смысл go с обычным componentDidMount для получения из хранилища сеанса. Единственное, что я не могу понять, это как воссоздать второй useEffect, который устанавливает хранилище сессии и срабатывает только при изменении searchTerm или состояния. searchTerm и state - это просто два свойства состояния. Как я могу реализовать это, так как componentDidMount срабатывает только один раз при первом монтировании приложения? Спасибо