dailylog 7-15-20
less than 1 minute read
How I eventually “solved” the local host / grabbing from api issue
import { useState, useEffect } from "react";
import axios from "axios";
const useLocalStorage = (key, year) => {
const [state, setState] = useState(() => {
console.log(
"GETTING LOCALLY*******************************************************"
);
let val;
try {
val = JSON.parse(window.localStorage.getItem(key) || []);
} catch (e) {
val = [];
}
return val;
});
useEffect(() => {
window.localStorage.setItem(key, JSON.stringify(state));
}, [key, state]);
useEffect(() => {
async function getData() {
console.log("GETTING from api -------------------------------");
const response = await axios.get(
`https://raw.githubusercontent.com/aaroncaraway/data/master/${year}moviesALL.json`
);
console.log(response.data);
setState(response.data);
}
const val = JSON.parse(window.localStorage.getItem(key)) || [];
if (val.length === 0) {
getData();
}
}, [key, year]);
return [state, setState];
};
export default useLocalStorage;