通过props将所有redux状态和操作传递给子组件是否合适?

时间:2016-11-27 05:33:29

标签: reactjs redux react-redux

从现在开始,我一直在使用Redux。感觉非常好。

我的一个难点是,在所有组件中使用connectstatesactions映射到道具。

例如:

index.jsx

const uiStates = states => ({
  ui: states.reducer,
})

const uiActions = dispatch => ({
  actions: bindActionCreators({
    ...actions,
    ...APIs,
  }, dispatch),
})

@connect(uiStates, uiActions)
export default class Root extends Component {

}

再次,在子组件中

child.jsx

const uiStates = states => ({
  ui: states.reducer,
})

const uiActions = dispatch => ({
  actions: bindActionCreators({
    ...actions,
    ...APIs,
  }, dispatch),
})

@connect(uiStates, uiActions)
export default class Child extends Component {

}

相反,我可以将状态和动作作为道具从Root传递给孩子吗?

const uiStates = states => ({
  ui: states.reducer,
})

const uiActions = dispatch => ({
  actions: bindActionCreators({
    ...actions,
    ...APIs,
  }, dispatch),
})

@connect(uiStates, uiActions)
export default class Root extends Component {
   render(){
      return <Children {...this.props}/>
   }
}

我已经尝试过了,效果很好。但是,这种方法有什么缺点吗? 作为一个优势,我知道,我不需要在所有组件中使用connect()

0 个答案:

没有答案