Здравствуйте.
Загружаю репозитории, через api github и хочу в момент загрузки, пока на стороне клиента данные не будут получены показывался "Loader". Проблема в том, что данные подгружаются и запрос выполняется, но при этом loader не работает, т.к. setIsFetching(true/false) не срабатывает. Пробовал так же через case в самом reposReducer делать, но там тоже проблема вылазит и get запрос не выполняется вообще. Помогите советом, что делаю не так?
Сам запрос:
repos.js :
export const getRepo = async (userName, repoName, setRepo) => {
setIsFetching(true);
const response = await axios.get(`https://api.github.com/repos/${userName}/${repoName}`);
setRepo(response.data);
setIsFetching(false);
}
reposReducer.js:
const initialState = {
items: [],
isFetching: true.
...
}
export default function reposReducer(state = initialState , action) {
switch (action.type) {
case... ,
default:
return state
}
}
export ...
Компонент :
const {username, reponame} = useParams();
const [repo, setRepo] = useState({});
const isFetching = useSelector(state => state.repos.isFetching);
useEffect(() => {
getRepo(username, reponame, setRepo);
}, []);