我有一个名为contacts
的反应组件和名为' comments'的子组件。和' card'。这三个都连接到contactReducer
如果我为联系人写了一个减速器,如下所示:
const reducer = ( state = null, action = null ) => {
switch (action.type) {
case GET_CONTACT:
return [
...state,
contact: action.payload
]
case GET_CARD:
return [
...state,
card: action.payload
]
case GET_COMMENTS:
return [
...state,
comments: [...action.payload]
]
default:
return state;
}
}
export default reducer;
1.A)
每次子组件收到更新的道具时父组件是否都会呈现,因为它们都连接到contactReducer
?
1.B) 如果我以错误的方式解决这个问题,你会如何推荐它?
2)
在每个操作更新contactReducer
之后,我是否最终得到以下对象,或者我离开了?
contactsReducer = {
contact : {someData},
card : {someData},
comments: [someData, someData, ...]
}
答案 0 :(得分:2)
任何接收新对象作为道具或其状态发生变化的对象都会根据react的差异算法重新渲染。假设您没有覆盖componentShouldUpdate
方法。
1a - 父级将从reducer接收新状态并重新呈现应该更改的任何内容。
1b / 2 - 在当前的实现中,您将拥有一个包含对象组合的数组,其中键的变化范围为contact, card, and comments
。您应该查看redux的功能combineReducers
并为每个键创建一个reducer。我强烈建议您观看Redux上的视频系列以查看设计模式,这将有很长的路要走 - video