Redux呼叫2调度返回未定义

时间:2019-01-30 18:32:13

标签: javascript reactjs redux

这是用于显示帖子和待办事项的简单redux应用程序,当我调用调度动作SHOW_POSTS效果很好,但是SHOW_TODOS返回undefined时,为什么呢?

let initialState = {
      todos : ['buy milk', 'write code'],
      posts : ['weekly news']
    }


    function counter(state = initialState, action) {
      switch (action.type) {
        case 'SHOW_POSTS':
          return state.posts
          break;
        case 'SHOW_TODOS':
          return state.todos
          break;
        case 'ADD_TODO':
          return {
            todos: [...state, action.payload]
          }
          break;
        default:
          return state
      }
    }    

    let store = createStore(counter)

    store.subscribe(() => console.log(store.getState()))

    console.log('show posts:')
    store.dispatch({ type: 'SHOW_POSTS' })

    console.log('show todos:')
    store.dispatch({ type: 'SHOW_TODOS' })

1 个答案:

答案 0 :(得分:0)

您应该在减速器上返回整个状态,因为return语句将替换=IF(A2<>A1,SUMIF(A:A,A2,B:B),"") 的下一个值。实际上,您在这里所做的就是将state替换为initialState。您可以通过还原这些调度调用来看到这一点。您会看到posts将为空。