加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – React-Redux:组合reducers:意外的键

发布时间:2020-12-15 06:24:49 所属栏目:百科 来源:网络整理
导读:我的应用程序在我开始结合我的Redux reducer之前工作正常。但是当我结合起来,initialState和reducer键会混合起来。 function flash(state = [],action) { switch (action.type) { case FLASH_MESSAGE_UPDATED: return _.extend({},state,{ flash: action.fl
我的应用程序在我开始结合我的Redux reducer之前工作正常。但是当我结合起来,initialState和reducer键会混合起来。
function flash(state = [],action) {
  switch (action.type) {
  case FLASH_MESSAGE_UPDATED:
    return _.extend({},state,{ flash: action.flash })
  default:
    return state
  }
}

function events(state = [],action) {
  switch (action.type) {
  case EVENTS_UPDATED:
    return _.extend({},{ events: action.pathway_events })
  default:
    return state
  }
}

export default combineReducers({
  events,flash
})

这导致功能不正确和控制台错误:

在initialState参数中发现意外的键“一”,“二”,传递给createStore。期望找到一个已知的reducer键,而不是“事件”,“闪存”。意外的键将被忽略。

我的初始状态在redux-thunk的帮助下传入。

import { createStore,applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import reducer from '../../reducers/event'

let initialState = {
  one: globalData.one,two: globalData.two,events: globalData.events,flash: globalData.flash
}
let createStoreWithMiddleware = applyMiddleware(thunk)(createStore)
let reduxStore = createStoreWithMiddleware(reducer,initialState);

React.render(
  <Provider store={reduxStore}>
    <EventListContainer />
  </Provider>,$('.events')[0]
)

如何正确地组合reducer?

我想你只需要添加reducers的附加键,例如
function one(state = {},action) {
  switch (action.type) {
  case ONE_UPDATED:
    return action.one
  default:
    return state
  }
}

从the docs:

If you produced reducer with combineReducers,this must be a plain object with the same shape as the keys passed to it. Otherwise,you are free to pass anything that your reducer can understand.

如果您不需要处理与一个或两个相关的任何操作,只需将它们初次拉出,这可能就如此简单

export default combineReducers({
  events,flash,one: (state = {}) => state,two: (state = {}) => state
})

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读