Reactjs 关于redux组件渲染方法的问题

Reactjs 关于redux组件渲染方法的问题,reactjs,redux,Reactjs,Redux,我有三个组件,它们都连接到redux存储并显示相同的状态,我们称之为x 三个连接的组件具有父子关系,如: - connect()(ComponentA) - connect()(ComponentB) - connect()(ComponentC) ComponentB和ComponentC都是ComponentA的子级 当我在连接的组件C中更改x的值时,组件A和组件B中的x显示也会更改,但是组件B中的渲染方法调用了多少次 理论上,它应该调用两次(一个由父组件A调用,另一个由自身调用)

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

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

- connect()(ComponentA)
  - connect()(ComponentB)
  - connect()(ComponentC)
ComponentB和ComponentC都是ComponentA的子级

当我在连接的组件C中更改
x
的值时,组件A和组件B中的
x
显示也会更改,但是组件B中的渲染方法调用了多少次

理论上,它应该调用两次(一个由父组件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"
      });
    }
  };
}

请说明如何仅调用一次从组件B添加的
mapstateTrops
@codekaizer redux代码
render
。这是正确的。当redux状态更改时,
组件A
将收到通知,并调用其
呈现
方法。下一步是更新其子级。然后
组件B
调用其
render
方法。状态流是这样的:
状态更改
->
组件A重新渲染
->
组件B重新渲染
。这就是您所经历的吗?请澄清,所有组件都使用
connect(MapStateTops,mapDispatchToProps)(组件)
?意思是所有组件都在侦听
count
?@BrunoPaulino谢谢您请说明您如何
mapstatetops
@codekaizer redux添加
render
组件B
只能调用一次。这是正确的。当redux状态更改时,
组件A
将收到通知,并调用其
呈现
方法。下一步是更新其子级。然后
组件B
调用其
render
方法。状态流是这样的:
状态更改
->
组件A重新渲染
->
组件B重新渲染
。这就是您所经历的吗?请澄清,所有组件都使用
connect(MapStateTops,mapDispatchToProps)(组件)
?意思是所有组件都在收听
count
?@BrunoPaulino谢谢