将param传递给`connect()`中的mapStateToProps

时间:2017-03-22 05:15:24

标签: reactjs react-native redux react-redux

如何将参数传递给mapStateToProps()

EG:

const mapStateToProps = (state, dimenType: string) => {

  var jsonVariable = {}
  for(var i=1; i <= 3; i++) {
    jsonVariable[dimenType + i] = dimenType + i
  }
  console.log(jsonVariable)
  return {
    width1: state.get('width').get('width1').toString(),
    width2: state.get('width').get('width2').toString(),
    width3: state.get('width').get('width3').toString()
  }
}

这是我不确定的:

Width = connect(
  mapStateToProps(/*redux store goes here somehow*/, 'thickness'),
  mapDispatchToProps
)(Width)

我希望redux商店仍然传递到mapStateToProps,但也传递"thickness"。我如何在connect()函数中执行此操作?

1 个答案:

答案 0 :(得分:5)

connect的第二个参数是ownProps,它们是传递给Component的道具。所以在你的情况下你可以像这样使用它:

const mapStateToProps = (state, ownProps) => {
  let jsonVariable = {}
  for(var i=1; i <= 3; i++) {
    jsonVariable[dimenType + i] = ownProps.dimenType + i
  }
  console.log(jsonVariable)
  return {
    width1: state.get('width').get('width1').toString(),
    width2: state.get('width').get('width2').toString(),
    width3: state.get('width').get('width3').toString()
  }
}

我假设您正在创建这样的组件:<Width thickness={10}/>