使用redux获取然后更改状态的麻烦

时间:2017-03-26 19:41:59

标签: javascript reactjs react-redux

我试图在单击切换按钮时使用redux基本上更改我的应用程序的状态。 onClick方法似乎正在使用我已经显示onClick正在工作的日志语句。我似乎无法获得状态,因此不允许我改变状态。

你能告诉我如何获得状态然后改变状态吗?

这是我的代码:

export default function (state=[], action) {
      switch(action.type) {
        case 'TOGGLE_EXPAND_CALENDAR_SECTION':
          console.log("case 'TOGGLE_EXPAND_CALENDAR_SECTION'");
          if (action.payload.moduleSizeCalendar == 'dashSection') {
           console.log("click worked if");
        return {
          ...state,
          moduleExpandImageCalendar: 'img/collapseBlue.png',
          moduleSizeSchools: 'hidden',
          moduleSizeCalendar: 'dashSectionFullScreen',
          moduleSizeStudent: 'hidden',
          moduleSizeTeacher: 'hidden',
          moduleSizeClasses: 'hidden',
          moduleSizeTasks: 'hidden',
          moduleSizePhotos: 'hidden'
        }
      } else {
           console.log("click worked else");
        return {
          ...state,
          moduleExpandImageCalendar: 'img/enlargeBlue.png',
          moduleSizeSchools: 'dashSection',
          moduleSizeCalendar: 'dashSection',
          moduleSizeStudent: 'dashSection',
          moduleSizeTeacher: 'dashSection',
          moduleSizeClasses: 'dashSection',
          moduleSizeTasks: 'dashSection',
          moduleSizePhotos: 'topLine'
        }
      }
  default:
  return {
      ...state
    }
  }
}

非常感谢!

1 个答案:

答案 0 :(得分:0)

您的状态默认值为空数组,但您将其视为reducers中的对象。不确定这是你面临的问题,但你应该解决这个问题。

我强烈建议使用redux dev工具,这将真正有助于了解您的操作和减速器正在做什么以及当前状态实际是什么。