Помогите пожалуйста понять почему не срабатывает thunk. В компоненте я вызываю thunk, который должен проинициазилировать store актуальными значениями из БД. В качестве БД временно использую http-server(это имитация бекенда)
App.js:
import { addTodoCreator, initTodosThunk } from './redux/todosReducer';
function App() {
initTodosThunk();
return (
<Header/>
);
}
Соответствующий thunk хранится в файле редюсера:
todoReducers.js:
const todosReducer = function todosReducer(state = { todos: [] }, action) {
switch(action.type) {
case 'ADD_TODO': {
state = {
...state,
todos: [ ...state.todos, action.payload ],
};
break;
}
default:
return state;
}
return state;
}
export const addTodoCreator = todo => {
return { type: 'ADD_TODO', payload: todo }
}
export const initTodosThunk = () => {
debugger // ДОХОДИТ
return async dispatch => {
debugger // НЕ ДОХОДИТ
const response = await fetch(`${API_URL}/todos`);
const todos = await response.json();
todos.forEach(todo => {
dispatch(addTodoCreator(todo));
});
}
}
Как видите, в этом thunk есть две инструкции 'debugger'. Проблема в том, что до первого дебуггера поток выполнения скрипта доходит, а до второго - нет. Соответственно thunk не выполняет свою задачу.
Полный код на github