connect和withRouter的兼容性

时间:2018-07-14 02:21:04

标签: reactjs react-router react-redux

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的调度不一样,如何避免这种情况?

0 个答案:

没有答案