Похоже, вы хотите вернуть все задачи в homeReducer с типом действия 'ADD_TODO'. Это не совсем верно. Ваш компонент со списком задач должен подумать об этом, и он может получить все задачи через селектор selectAllTodos.
Вы также не указали состояние для функции makeSelectTodos
. Как я вижу, ваш селектор возвращает функцию, которая возвращает функцию createSelector. Здесь есть ошибка. Вам нужно написать что-то вроде этого:
const selectHome = state => state.get('home');
const selectAllTodos = createSelector(
selectHome,
homeState => homeState.get('todos')
);
В действии создатели-селекторы могут использоваться следующим образом:
// action creators:
const addTodoAction = todo => ({
type: 'ADD_TODO',
payload: todo
});
const addTodo = todo => (dispatch, getState) => {
// here you able to use your selectors like:
// const todos = selectAllTodos(getState());
return dispatch(addTodoAction(todo));
};
Упростите свою логику редуктора настолько, насколько вы можете:
const todosReducer = (state = [], action) => {
if (action.type === 'ADD_TODO') {
return {
id: action.payload.id,
text: action.payload.text,
completed: false
};
}
return state;
};
const visibilityFilterReducer = (state = 'SHOW_ALL', action) => {
// your visibility filter reducer logic
};
export default combineReducers({
todos: todosReducer,
visibilityFilter: visibilityFilterReducer
});
Удачи! :)