为什么我的新状态不会影响组件的渲染方法?

时间:2016-06-24 20:28:34

标签: reactjs redux

我有redux并且反应正常我相信并且我有一个子组件触发一个动作然后使它成为父组件的mapStatetoDispatch方法的新状态。然而,虽然我可以通过控制台日志确认这个状态确实是新的,但它永远不会遇到渲染方法(道具返回未定义,就像之前没有道具发送给他们一样)。

我必须遗漏一些基本的东西,我甚至尝试了所有组件更新或下一个状态方法。这是我的组成部分:

https://gist.github.com/geoffreysmith/ff909437a29ae8ab8db8038276b4f3b2

谢谢!

编辑:这是我的减速机:

import { combineReducers } from 'redux';
import { routerReducer as routing } from 'react-router-redux'
import { ADD_NEW_REPORT } from '../actions/Dashboard';


function reports(state = {}, action) {
  switch (action.type) {
    case ADD_NEW_REPORT:
      return Object.assign({}, state, { [action.index]: addReport(undefined, action) })
    default:
      return state
  }
}

function addReport(state, action) {
    switch (action.type) {
        case ADD_NEW_REPORT:
            return {
                 index: action.index,
                 siteAddress: action.siteAddress,
                 receivedAt: action.receivedAt,
                 status: action.status
                }
            default:
                return state
        }
    }

const rootReducer = combineReducers({
  reports,
  routing
})

export default rootReducer

1 个答案:

答案 0 :(得分:1)

我相信mapStateToProps应该返回一个对象(props)。

所以我会改为:

const mapStateToProps = (state) => {
  return {
    reports: state.reports
  }
}