【问题标题】:My react app is giving an error of "action undefined"我的反应应用程序给出“动作未定义”的错误
【发布时间】:2018-09-09 20:07:45
【问题描述】:

每当我启动我的反应应用程序时,我的反应应用程序都会给出未定义的操作错误。我在 switch(action.type) 的减速器中使用了它,我遇到了我搜索的问题,但语法相同,或者我在其他地方犯了错误,但我无法弄清楚。

Action.js

export function createUser(details)
{
return{ type: 'CREATE_USER',details}
}

Reducer.js

export default function userReducer(state= initialState, action) {
switch (action.type) {
    case 'CREATE_USER':
        return[...state,
            Object.assign({}, action.details)

        ];
    default:
        return state;
   }
}

index.js 表单组合减速器

import {combineReducers} from 'redux';
import userReducer from './Reducers';

const rootReducer = combineReducers({
   detail: userReducer
});

export default rootReducer;

ConfigureStore.js

import rootReducer from "../reducers/index";
import {createStore} from 'redux';

export default function (initialState) {
    return createStore(
        initialState,
        rootReducer,
    )
 }

【问题讨论】:

  • 您是否通过传递组合减速器在应用程序的某处创建商店:Redux.createStore(combineReducers(...), initialState
  • 是的,刚刚编辑了问题并添加了它
  • 但我猜这不是你说的方式有点不同! :D
  • reducer 必须是createStore 的第一个参数(参见herehere)。试试return createStore(rootReducer, initialState)
  • @SaifKhan 您以错误的顺序传递了参数。你打电话给createStore(initialState, rootReducer),而它应该是createStore(rootReducer, initialState)

标签: javascript reactjs redux react-redux


【解决方案1】:

如 cmets 中所述,您需要颠倒将 initialStaterootReducer 传递给 createStore 的顺序:即将您的 ConfigureStore.js 更改为

import rootReducer from "../reducers/index";
import { createStore } from 'redux';

export default function (initialState) {
    return createStore(
        rootReducer,
        initialState,
    )
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-05
    • 2019-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多