Tu problema es la asignación del callback al evento onKeyDown, recuerda que dentro de { callback } callback es una expresión no un valor, al colocar this.fumcion(this,bar) estas ejecutando la función en lugar de enviar la referencia de la función, tal vez lo que intentas poner es
onKeyDown={this.funcion.bind(this, valor)}
Sin embargo en la función necesitas acceder al evento en este caso puedes hacer lo siguiente
onKeyDown={(evt) => this.funcion(evt, valor)}
Bind retorna una función dentro de la cual asigna el primer parámetro que envías a la variable interna 'this', por esta razón es válido declarar el callback de esa manera con bind ya que retorna la misma función, no la ejecuta en el segundo caso de igual manera al utilizar el operador arrow estoy colocando una expresión en este caso es una función inline que la utilizó como intermediaria para capturar el objeto event y a su vez enviar este objeto a la función