Próbuje napisac mechanizm czuwajacy nad poprawnym połaczeniem z plikiem json tak aby w przypadku bledu wyswietlał odpowiedni komunikat oraz informacje o statusi aby user nie zastanawiał sie czym jest np blad 404.
Można to zrobić za pomocą fetch, ale pytanie tylko czy zwykle połaczenie metodą GET będzie lepsze niżeli zastosowanie konstrukcji asynch/await ktora jak mniemam przydaje się do sterowania zadań.
function testConnectionWithAwait(){
const [info, setInfo] = useState([]);
const [connectionState, setConnectionState] = useState(null);
useEffect(() => {
const getData = async () => {
try{
const dataObj = await fetch('https://jsonplaceholder.typicode.com/posts');
if(dataObj.status == 404){
throw new Error(`Problem with file connection`);
}
const answer = await dataObj.json();
setInfo(answer);
connectionState("connected");
}catch(er){
setConnectionState(er.message);
//setConnectionState(false);
}
}
},[]);
if(!connectionState)
return <div>Connection error : {connectionState}</div>
function testConnection(){
const [info, setInfo] = useState([]);
const [connectionState, setConnectionState] = useState(null);
useEffect(() => {
try{
fetch('https://jsonplaceholder.typicode.com/user')
.then(feedback => {
if(feedback.status == 404){
//throw new Error(`Problem with file connection`);
console.log("Problem with file connection");
}
})
.then(response => response.json)
setInfo(response);
}catch(er){
setConnectionState("false");
}
},[]);
}
Na bazie doświadczenia jesteś w stanie określić co jest lepsza drogą nie koniecznie bardziej popularną ? Marginesem mówią gdyby ktoś z Was nie miałby większego pojęcia o połączeniu tego typu , bo dawniej używało się httprequest to tak z tydzień roboczy zajęło by Wam poeksperymentowanie z tym , a moze jednak dłużej ? ;)