У меня есть три компонента, которые все они подключаются к хранилищу резервов и отображают одно и то же состояние, назовем его x
И три подключенных компонента имеют отношения родитель-потомок, такие как:
- connect()(ComponentA)
- connect()(ComponentB)
- connect()(ComponentC)
ComponentB и ComponentC оба являются потомками ComponentA
Когда я изменяю значение x
в подключенном ComponentC, отображение x
также изменяется в ComponentA и ComponentB, но сколько раз рендерингметод в ComponentB вызван?
Теоретически он должен вызываться дважды (один по родительскому компоненту 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"
});
}
};
}