React-redux的connect
是部分呈现dom项目的好方法,并且
react-router的withRouter
也是一种将历史消息添加到dom项目中任何地方的功能。如果我有很多像这样的组成部分:
Component1
const Component1 = (props) => (
<div>
<Component11 />
<Component12 />
</div>
)
Component11
class Component11 extends Component {
handleRoute = () => {
fetchItems()
this.history.push(/Component1)
}
render() {
return (...)
}
}
export default withRouter(connect(
item1: state.items.item1, fetchItems
))(Component11)
Component12
const Component12 = (props) => (
<div>
...
<Component121 {...this.props} />
</div>
)
export default connect(
item1: state.items.item1,
{}
)(Component12)
Component11具有到Component1的路由按钮路径,而Component11和Component12具有共享的redux状态项。如果Component11 fetchItems,然后路由到Component1,则Component12也将重新渲染。
但是渲染Component12的时间线和redux的调度不一样,如何避免这种情况?