javascript - 为什么我的 reducer 没有收到我的操作? (使用 React 和 Redux)

标签 javascript reactjs redux react-redux reducers

这些是我当前的 Action 创建者,他们运行良好并像往常一样返回 Action 。我已经测试了一些日志记录,它在这里工作:

export function stateToEntry() {
    return { type: types.STATE_TO_ENTRY, formState: 'entry-mode'};
}

export function stateToEdit() {
    return { type: types.STATE_TO_EDIT, formState: 'edit-mode'};
}

export function stateToDelete() {
    return { type: types.STATE_TO_DELETE, formState: 'delete-mode'};
}

这是我当前的 reducer ,它不接收我的操作。我这里测试了一下,好像连控制台都登录不了:

import * as types from '../actions/actionTypes';

export default function formStateReducer(state = [], action) {
    switch(action.type) {
        case types.STATE_TO_ENTRY:
            console.log('entry-mode');
            return {formState: action.formState};
        case types.STATE_TO_EDIT:
            //console.log('edit-mode');
            return {formState: action.formState};
        case types.STATE_TO_DELETE:
            //console.log('delete-mode');
            return {formState: action.formState};
        default:
            return state;
    }
}

这是我的组合 reducer 。位置 reducer 工作正常,但我的 formState 为空,因此它在商店内正确链接。 :

const rootReducer = combineReducers({
    locations,
    formStates
});


export default rootReducer;

我可能错过了什么?

最佳答案

来自文档:bindActionCreators ...将值为 Action 创建者的对象转换为具有相同键的对象,但每个 Action 创建者都包装在调度调用中,以便可以调用它们直接。

所以,你用错了,试试这个:

let foo = {
    location: bindActionCreators(locationActions, dispatch),
    form: bindActionCreators(formActions, dispatch)
}
// later in your code -- will dispatch that action automatically
foo.location.someActionFromLocationActionsObject()

关于javascript - 为什么我的 reducer 没有收到我的操作? (使用 React 和 Redux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38387350/

相关文章:

javascript - jQuery:如何删除此代码冗余?

javascript - 从请求中分派(dispatch) redux 操作的正确方法

javascript - 通过 redux-form、reducer 和 action Creator 发送数据表单

javascript - 图标克隆元素放在错误的位置

javascript - PHP计算字符串中字符的唯一性和出现次数

项目名称中存在空格时的 JavaScript 文件命名约定

javascript - React-dnd 中的动画

Javascript 语法 null : ? {}

javascript - 异步等待和获取语法在 React 中不起作用

unit-testing - 如何使用 Jest 测试 Thunk 操作?