Reactjs 关于redux组件渲染方法的问题
我有三个组件,它们都连接到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调用,另一个由自身调用)
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谢谢