Реагировать Redux State Object Свойства - PullRequest
0 голосов
/ 03 июня 2019

Интересно, почему мои todos состояния названы todo , а не todos в инструментах redux dev .. Откуда пришло это имя? Там нет начального состояния .. интересно ..

Я слежу за Стивеном Гридером курс удеми, но с ревизиями вместо потоков в качестве ревизии

почему я должен вернуть его state.todo, а не state.todos ??

Мой Github Repo

файл jsson server db.json (файл api)


        {
      "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;
      }
    };

Действия / 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 Ответ

2 голосов
/ 03 июня 2019

https://github.com/HosMercury/todos/blob/master/src/reducers/index.js здесь вы передаете список как todo, а не как todos.

Здесь вы можете проверить консоль в песочнице https://codesandbox.io/s/github/HosMercury/todos

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...