Reactjs 在mapDispatchToProps中使用dispatch时使用哪个减速机?

Reactjs 在mapDispatchToProps中使用dispatch时使用哪个减速机?,reactjs,redux,reducers,redux-reducers,Reactjs,Redux,Reducers,Redux Reducers,我正在学习Redux,我有两个减缩器,一个用于在页面上显示联系人的contactReducer和一个用于乱用的testReducer。在我的一个组件文件中,我具有以下功能: const mapDispatchToProps = (dispatch) => ({ getContacts: () => dispatch({ type: "TEST_ACTION" }), }); 这是我的两个reducer文件: 接触器减速器: import { GET_CONTACTS } fro

我正在学习Redux,我有两个减缩器,一个用于在页面上显示联系人的contactReducer和一个用于乱用的testReducer。在我的一个组件文件中,我具有以下功能:

const mapDispatchToProps = (dispatch) => ({
  getContacts: () => dispatch({ type: "TEST_ACTION" }),
});
这是我的两个reducer文件: 接触器减速器:

import { GET_CONTACTS } from "../actions/types";

const initialState = {
  contacts: [
    {
      id: 1,
      name: "John Doe",
      email: "john@gmail.com",
      phone: "555-555-5555",
    },
    {
      id: 2,
      name: "Karen Williams",
      email: "karen@gmail.com",
      phone: "444-444-4444",
    },
    {
      id: 3,
      name: "Henry Johnson",
      email: "henry@gmail.com",
      phone: "333-333-333",
    },
  ],
};

export default function (state = initialState, action) {
  switch (action.type) {
    case GET_CONTACTS:
      return {
        ...state,
      };
    default:
      console.log("testing action in contactReducer");
      return state;
  }
}

和测试减速器:

import { GET_CONTACTS } from "../actions/types";

const initialState = {
  contactsTest: [
    {
      id: 1,
      name: "ffffffffffff",
      email: "john@gmail.com",
      phone: "555-555-5555",
    },
    {
      id: 2,
      name: "ggggggggggggg",
      email: "karen@gmail.com",
      phone: "444-444-4444",
    },
    {
      id: 3,
      name: "aaaaaaaaaaaaaa",
      email: "henry@gmail.com",
      phone: "333-333-333",
    },
  ],
};

export default function (state = initialState, action) {
  switch (action.type) {
    case "TEST_ACTION":
      return {
        ...state,
      };
    default:
      console.log("testing action");
      return state;
  }
}

因此,我从reducer文件中的console.log语句中注意到,对于每个联系人,contactReducer和testReducer的函数都是通过以下行调用的:

  getContacts: () => dispatch({ type: "TEST_ACTION" }),
});

如果我有多个reducer,但我只想调用其中一个函数进行分派,我会怎么做?

combinereducer
,是redux中的一个帮助函数,可以帮助您划分reducer。看看这个链接:

combineReducers
,它是redux中的一个帮助函数,可以帮助您划分减速机。查看此链接:

您的操作的
类型在所有减速器中都应该是唯一的。在Redux中,存储区的所有还原程序都会处理每个操作——这就是为什么默认情况下只返回上一个状态。啊,好的,那么这是有意义的。我是新来redux的,所以我想也许两个减速机可能会共享相同类型的动作。如果两个商店都对相同的动作做出反应,你绝对可以这样做,只是要意识到这不是你想要做的。好吧,非常感谢你澄清这一点,顺便问一下,这是否回答了你的问题?您的操作的
类型
应该在所有减速器中都是唯一的。在Redux中,存储区的所有还原程序都会处理每个操作——这就是为什么默认情况下只返回上一个状态。啊,好的,那么这是有意义的。我是新来redux的,所以我想也许两个减速机可能会共享相同类型的动作。如果两个商店都对相同的动作做出反应,你绝对可以这样做,只是要意识到这不是你想要做的。好吧,非常感谢你澄清这一点,顺便问一下,这是否回答了你的问题?