关于Redux组件渲染方法的问题

时间:2019-02-18 13:11:54

标签: reactjs redux

我有三个组件,它们全部都连接到redux存储并显示相同的状态,我们称之为x

三个连接的组件具有父子关系,例如:

- connect()(ComponentA)
  - connect()(ComponentB)
  - connect()(ComponentC)

ComponentB和ComponentC都是ComponentA的子代

当我在连接的ComponentC中更改x的值时,x的显示在ComponentA和ComponentB中也发生了变化,但是在ComponentB中调用了render方法多少次?

理论上,它应该调用两次(一次由上级组件A调用,一次由其自身调用),实际上仅调用一次。为什么?


Redux代码:

function counter(initalState = { count: 0 }, action) {
  switch (action.type) {
    case "add":
      return Object.assign({}, { count: initalState.count + 1 });
    default:
      return initalState;
  }
}

const store = createStore(
  combineReducers({
    counter
  })
);

function mapStateToProps(state) {
  return {
    count: state.counter.count
  };
}

function mapDispatchToProps(dispatch) {
  return {
    add: function() {
      dispatch({
        type: "add"
      });
    }
  };
}

0 个答案:

没有答案