猿问

React Redux 状态对象属性

我想知道为什么我的状态 todos在 redux 开发工具中命名为todo而不是todos .. 这个名字是从哪里来的?没有初始状态..我想知道..

我正在关注Stephen Grider udemy 课程,但使用待办事项而不是流作为修订

为什么我必须回到它state.todostate.todos

Jsson 服务器 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('/');

    };


九州编程
浏览 111回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答