When you write
onClick={this.props.select(this.props.key)}
you're calling the this.props.select
handler immediately and setting its result as the onClick handler. I'm guessing you want to instead do a partial application, which you can do using an arrow function:
onClick={(e) => this.props.select.bind(this.props.key, e)}
If you don't care about the event arg, you can skip it.
You can also use .bind()
like so:
onClick={this.props.select.bind(null, this.props.key)}