0

I wonder why my state todos named todo not todos in the redux dev tools .. From where that name came ? There is no initial state .. i wonder..

I'm following Stephen Grider udemy course but with todos instead of streams as a revision

why i have to return it by state.todo not state.todos??

My github Repo

Jsson server db.json file ( api file )


        {
      "todos": [
        {
          "title": "lorem ipsum ",
          "description": "lorem ipsum",
          "id": 4
        }
      ]
    }

todoReducer.js


        import _ from 'lodash';
    import {
      CREATE_TODO,
      EDIT_TODO,
      FETCH_TODO,
      FETCH_TODOS,
      DELETE_TODO
    } from '../actions/types';

    export default (state = {}, action) => {
      switch (action.type) {
        case FETCH_TODOS:
          return { ...state, ..._.mapKeys(action.payload, 'id') };
        case CREATE_TODO:
        case FETCH_TODO:
        case EDIT_TODO:
          return { ...state, [action.payload.id]: action.payload };
        case DELETE_TODO:
          return _.omit(state, action.payload);

        default:
          return state;
      }
    };

actions/index.js


        import todos from '../apis/todos';
    import history from '../history';
    import {
      SIGN_IN,
      SIGN_OUT,
      CREATE_TODO,
      EDIT_TODO,
      FETCH_TODO,
      FETCH_TODOS,
      DELETE_TODO
    } from './types';

    export const signIn = userId => {
      return { type: SIGN_IN, payload: userId };
    };

    export const signOut = () => {
      return { type: SIGN_OUT };
    };

    export const fetchTodos = () => async dispatch => {
      const response = await todos.get('/todos');

      dispatch({ type: FETCH_TODOS, payload: response.data });
    };

    export const createTodo = formValues => async dispatch => {
      const response = await todos.post('/todos', formValues);
      dispatch({ type: CREATE_TODO, payload: response.data });
      history.push('/');
    };



1 Answer 1

2

https://github.com/HosMercury/todos/blob/master/src/reducers/index.js here you are passing the list as todo not as todos.

Here you can check console in sandbox https://codesandbox.io/s/github/HosMercury/todos

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.