useState не обновляет состояние после вызова fetch
сервер получает данные и это видно в логах.
Так же данные видны в fetch запросе, а точнее во втором then где находятся console.log(jsоn).
В useEffect не происходит обновление данных console.log() выводит лишь undefined, хотя в setData передаются данные полученные с сервера.
export function useFetch <T, U = any>(method: string = 'POST'): IUseFetch<T, U>{
const [load, setLoad] = useState(true)
const [data, setData] = useState<T>()
const [error, setError] = useState<ErrorData>()
const ReqestData: RequestInit = {
method,
mode: 'cors',
redirect: 'follow',
credentials: "include",
headers: {
'Content-type': 'application/json',
'Accept': 'application/json'
},
}
useEffect(() => {console.log(data)},[data, load, error])
const fetchData = (url: string, dataR?: U) => {
if(dataR)ReqestData.body = JSON.stringify(dataR)
fetch(process.env.REACT_APP_Server_Response + url, ReqestData)
.then(response => response.json())
.then((json) => {
console.log(json)
setData(json)
setLoad(false)
})
.catch(err => {
setError(err.message)
setLoad(false)
})
}
return {load, data, error, fetchData}
}