当前位置: 首页 > 面试题库 >

Redux商店没有有效的reducer

曾晨
2023-03-14
问题内容

在这里找不到有关此错误的任何信息:

存储区没有有效的reducer。请确保传递给CombineReducers的参数是一个值为reducer的对象。”

我的减速机

export default function FriendListReducer(state = {friends : []}, action) {
  switch (action.type) {
    case 'ADD_FRIEND':
      return [
        { friends : action.payload.friend }, ...state.friends
      ]     
    default:
      return state;
  }
  return state;
}

合路器

import { combineReducers } from 'redux';
import { FriendListReducer } from './FriendListReducer';

const rootReducer = combineReducers({
  friends: FriendListReducer
});
export default rootReducer;

我的商店配置

import { applyMiddleware, createStore } from 'redux';
import thunkMiddleware from 'redux-thunk';
import createLogger from 'redux-logger';
import rootReducer from '../reducers/reducers';

export default function configureStore(initialState = { friends: [] }) {
  const logger = createLogger({
    collapsed: true,
    predicate: () =>
    process.env.NODE_ENV === `development`, // eslint-disable-line no-unused-vars
  });

  const middleware = applyMiddleware(thunkMiddleware, logger);

  const store = middleware(createStore)(rootReducer, initialState);

  if (module.hot) {
    // Enable Webpack hot module replacement for reducers
    module.hot.accept('../reducers/reducers', () => {
      const nextRootReducer = require('../reducers/reducers').default;
      store.replaceReducer(nextRootReducer);
    });
  }

  return store;
}

问题答案:

您的import陈述不正确。无论您使用import { Foo } from 'bar'一起export Foo或者 使用import Foo from 'bar',如果你有出口export default Foo

换句话说,将更export default function FriendListReducer改为export function FriendListReducer,或将import语句从更改import { FriendListReducer }import FriendListReducer



 类似资料:
  • 本文向大家介绍magento 获取所有Magento商店,包括了magento 获取所有Magento商店的使用技巧和注意事项,需要的朋友参考一下 示例 返回Mage_Core_Model_Store模型数组。

  • 问题内容: Redux应用程序中的初始状态可以通过两种方式设置: 将其作为第二个参数传递给(docs link) 将其作为第一个参数传递给您的(子)还原器(docs链接) 如果将初始状态传递给商店,您如何从商店读取该状态并将其作为化简器中的第一个参数? 问题答案: TL; DR 没有或没有类似的手动代码,总是在化简器中胜出,因为传递给化简器的 是 和 不是 ,因此在这种情况下不会应用ES6参数语法

  • 我正在创建一个react组件,以基于lat/long坐标列表在地图上显示标记。 使用谷歌地图反应npm包,我有一个容器组件和一个地图组件。MapsContainer组件被包装在GoogleApiComponent HOC中,如下所示。 我现在需要做的是将这个MapContainer组件连接到用于lat/long组件列表的redux存储。我试过了 和 每次我收到以下警告并且我的贴图不渲染时:

  • 问题内容: 我正在尝试使用Spring @Transactional批注,但是在调用 findAll 方法时出现问题,并且出现以下错误: 人DAO: 这是我的: 我尝试删除此行,但是又出现了一个错误,为什么这行不通? 问题答案: 您必须显式声明对事务管理器注释的支持 添加到您的配置中: tx是xmlns:tx =“ http://www.springframework.org/schema/tx”

  • 我正试着和redux thunk联系 我如何让调度从商店返回promise? 更具体地说: 我可能只是不理解这里的一些内容,但在所有使用的示例中,它们调用一个单独的异步事件(比如),它显然会返回一个。 我特别想要的是当我向商店发送一个动作时:我如何确保商店在上面的函数中发生任何其他事情之前,已经完全处理了该动作。 理想情况下,我希望商店能回报一些promise,但我不明白这是怎么发生的,在哪里发生

  • Button.js部分 我的问题是组件的道具似乎没有随redux商店更新。在onClick函数运行后,redux存储更新为正确的值,mapStateToProps也会以正确的状态运行,如果我尝试从prop记录状态,则仍然会获得旧值。如果我在返回JSX之前在render函数中执行相同的日志,那么我会从props中获得正确的状态,我无法理解为什么在redux存储被删除后它不会立即更新。因此,如果我将代